4

次のコードを使用して、ユーザーの Twitter アカウントにアクセスしています。

ACAccountStore *store = [[ACAccountStore alloc] init];
ACAccountType *twitterAccountType = 
[store accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];

//  Request access from the user for access to his Twitter accounts
[store requestAccessToAccountsWithType:twitterAccountType 
                 withCompletionHandler:^(BOOL granted, NSError *error) {
                     if (!granted) {
                         NSLog(@"User rejected access to his account.");
                     } 
                     else {
                         NSArray *arrayOfAccounts = [store accountsWithAccountType:twitterAccountType];
                         if ([arrayOfAccounts count] > 0)  {
                             ACAccount *acct = [arrayOfAccounts objectAtIndex:0];
                         }
}];

私の質問は、アプリ セッション間でユーザーのアカウントを保存するにはどうすればよいですか? 現在のセッションではインスタンス変数に格納できますが、ユーザーがアプリを終了して戻ってきた場合、どうすればそのアカウントを取得できますか? 電話があります[store requestAccessToAccountsWithType:twitterAccountType...]か?毎回?

4

2 に答える 2

8

を保存して、後で同じアカウントを取得するためにTWAccount.identifier使用できます。[ACAccountStore accountWithIdentifier]

于 2012-08-09T20:11:13.827 に答える
-4

iOS 5 だけに関心がある場合は、TWTweetComposeViewController クラスを使用できます。

私がそれを機能させる方法は次のようなものです...

NSString *deviceType = [UIDevice currentDevice].systemVersion;
NSString *tweet;
tweet=[API tweet:appDelegate.stadium_id];

if([deviceType hasPrefix:@"5."]){

    // Create the view controller
    TWTweetComposeViewController *twitter = [[TWTweetComposeViewController alloc] init];

    [twitter setInitialText:tweet];

    // Show the controller
    [self presentModalViewController:twitter animated:YES];

    // Called when the tweet dialog has been closed
    twitter.completionHandler = ^(TWTweetComposeViewControllerResult result) 
    {
        NSString *title = @"Tweet Status";
        NSString *msg; 

        if (result == TWTweetComposeViewControllerResultCancelled)
            msg = @"Tweet was canceled.";
        else if (result == TWTweetComposeViewControllerResultDone)
            msg = @"Tweet is sent!";

        // Show alert to see how things went...
        UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:title message:msg delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:nil];
        [alertView show];
        // Dismiss the controller
        [self dismissModalViewControllerAnimated:YES];

    };          
}

else{

    UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"Alert" message:@"Please upgrade to iOS 5 to tweet." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alert show];
}

}
于 2012-05-27T21:56:34.113 に答える