STTwitter没有返回任何成功或错误

时间:2014-11-17 13:08:24

标签: ios objective-c xcode sttwitter

我在这里度过了非常艰难的时光。在我的应用程序中有一部分STTwitter是成功的,还有另一部分(使用相同的代码)不返回任何内容。

不起作用的部分:`

-(IBAction)followTwitter:(id)sender {

if ([[NSUserDefaults standardUserDefaults] objectForKey:@"twitter_on_file" ] == nil) {

    UIAlertView *allert = [[UIAlertView alloc] initWithTitle:@"Uh oh!" message:@"You have not linked your twitter account quite yet! Head to My Account settins to do so." delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil, nil];
    [allert show];

} else {
    ACAccountStore *store1 = [[ACAccountStore alloc] init];
    ACAccountType *twitterAccountType = [store1 accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
    if ([twitterAccountType accessGranted]) {
        [store1 requestAccessToAccountsWithType:twitterAccountType options:nil completion:^(BOOL granted, NSError *error) {

            arrayOfUsernames = [[NSMutableArray alloc] init];

            iosAccounts = [store1 accountsWithAccountType:twitterAccountType];
            for (ACAccount *accou in iosAccounts) {
                [arrayOfUsernames addObject:accou.username];
            }

            NSString *usernameOnFile =  [[NSUserDefaults standardUserDefaults] objectForKey:@"twitter_on_file" ];
            int tracker = 0;

            for (NSString *username in arrayOfUsernames) {

                if ([username isEqualToString:usernameOnFile]) {
                    NSLog(@"Using twitter account: %@", username);
                    STTwitterAPI *twitterAPI = [STTwitterAPI twitterAPIOSWithAccount:iosAccounts[tracker]];
                    [twitterAPI verifyCredentialsWithSuccessBlock:^(NSString *username) {
                        NSLog(@"Successfully authenticated the user");

                    } errorBlock:^(NSError *error) {

                        NSLog(@"Erorr: %@", error);

                    }];
                    NSLog(@"Twitter API: %@", twitterAPI);

                    [twitterAPI postFriendshipsCreateForScreenName:@"kickscaterer" orUserID:nil successBlock:^(NSDictionary *befriendedUser) {

                        NSLog(@"Befriend %@", befriendedUser);


                    } errorBlock:^(NSError *error) {

                        NSLog(@"Error: %@", error);
                    }];
                } else {
                    tracker++;
                }
            }
        }];
    }
}

} `

工作的部分:

  STTwitterAPI *twitter= [STTwitterAPI twitterAPIOSWithAccount:iosAccounts[indexForAlert.row]];

        [twitter verifyCredentialsWithSuccessBlock:^(NSString *username) {
            // ...
            NSLog(@"Username: %@", username);
            //  [self.tableView reloadData];


            [[NSUserDefaults standardUserDefaults] setObject:twitter.userName forKey:@"twitter_on_file"];

        } errorBlock:^(NSError *error) {
            NSLog(@"Error: %@", error);
            // ...
        }];

        [twitter postFriendshipsCreateForScreenName:@"didi4" orUserID:nil successBlock:^(NSDictionary *befriendedUser) {

            NSLog(@"Befriend %@", befriendedUser);


        } errorBlock:^(NSError *error) {

            NSLog(@"Error: %@", error);
        }];

谢谢!

1 个答案:

答案 0 :(得分:0)

postFriendshipsCreateForScreenName:方法应该在成功块中称为 ,与“成功验证用户”日志的级别相同。