【问题标题】:requestAccessToAccountsWithType is deprecated in ios6.1, what should i use instead?requestAccessToAccountsWithType 在 ios6.1 中已弃用,我应该改用什么?
【发布时间】:2013-09-01 09:31:53
【问题描述】:

-(void)getTwittersFollowers{ ACAccountStore *store=[[ACAccountStore alloc]init]; ACAccountType *twitterAccType=[存储 accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];

**[store requestAccessToAccountsWithType:twitterAccType withCompletionHandler:^(BOOL granted,NSError *error)**{
    if(!granted){
        NSLog(@"User refused to access to his account");
    }else{

        NSArray *twitterAcc=[store accountsWithAccountType:twitterAccType];

        if([twitterAcc count]>0){
            ACAccount *account=[twitterAcc objectAtIndex:0];
            NSLog(@"account name %@",[account accountDescription]);

            NSMutableDictionary *params=[[NSMutableDictionary alloc]init];
            [params setObject:@"1" forKey:@"inclue_entitles"];

            NSURL *url=[NSURL URLWithString:@"http://api.twitter.com/1/followers.json"];
            //TWRequest *request=[[TWRequest alloc]initWithURL:url parameters:params requestMethod:TWRequestMethodGET];
            SLRequest *request=[SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodPOST URL:url parameters:params];
            [request setAccount:account];
            [request performRequestWithHandler:^(NSData *responce,NSHTTPURLResponse *urlResponce,NSError *error){
                if(!responce){
                    NSLog(@"%@",error);
                }else{
                    NSError *jsonError;
                    NSMutableDictionary *followers=[NSJSONSerialization JSONObjectWithData:responce options:NSJSONReadingMutableLeaves error:&error];

                        if(followers!=nil){
                            for (int i=0; i<[[followers objectForKey:@"users"] count]; i++) {
                                NSLog(@"_____%@",[[[followers objectForKey:@"users"] objectAtIndex:i] objectForKey:@"screen_name"]);
                                NSLog(@"______________________________________%@",[[[followers objectForKey:@"users"] objectAtIndex:i] objectForKey:@"profile_image_url"]);


                                [nameArray addObject:[[[followers objectForKey:@"users"] objectAtIndex:i] objectForKey:@"screen_name"]];


                                NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:[[[followers objectForKey:@"users"] objectAtIndex:i] objectForKey:@"profile_image_url"]]];


                                [imageArray addObject:imageData];

                                NSLog(@"%i", [imageArray count]);
                            }

                        }else{
                            NSLog(@"%@",jsonError);
                        }


                }
            }];
        }
    }


}];

}

我应该使用什么来代替突出显示的代码...?

【问题讨论】:

    标签: twrequest acaccountstore


    【解决方案1】:

    虽然由于某种原因没有在文档中明确提及,但该方法的替换是- (void)requestAccessToAccountsWithType:(ACAccountType *)accountType options:(NSDictionary *)options completion:(ACAccountStoreRequestAccessCompletionHandler)completion(可以通过查看文档轻松找到)

    【讨论】:

    • [self getTwittersFollowers]; FollowersViewController *friends = [[FollowersViewController alloc]initWithStyle:UITableViewStylePlain];朋友.nameArray = self.nameArray;朋友.imageArray = self.imageArray; UINavigationController *navigationController = [[UINavigationController alloc]initWithRootViewController:friends]; [self presentViewController:navigationController 动画:YES 完成:nil];
    • 感谢您的回答。我还有一个问题,我在按钮点击动作上调用了这个方法,就像编译器调用这个方法一样,它进入它的块并且突然没有完成它,它切换回按钮动作的进一步指令并在我编码时弹出下一个视图控制器这将由该块检索数据。我在那里有空表视图。但是我现在看到编译器正在运行该块。再次通过导航返回 btn 就像我单击此按钮一样,现在它将显示推特的关注者列表。
    • @Nitesh 方法是异步的。不保证在方法返回之前调用该块。
    • 是的,我在执行过程中观察到了这一点。但我把 MBProgressHUD 挂起来,这样它就会挂在这里,直到这个块完成。我想知道为什么这在这里不起作用..?
    • options 应该传递什么?
    猜你喜欢
    • 1970-01-01
    • 2019-08-28
    • 2010-09-17
    • 1970-01-01
    • 2014-01-09
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多