【发布时间】:2015-02-26 06:02:26
【问题描述】:
假设我想使用某个服务 Twitbookr 的其余 api 来获取用户的个人资料信息。因此,我让用户通过我的应用程序登录,并获得拨打电话所需的凭据。
之后我加载了一个新的 ViewController。我想用用户的个人资料信息填充此视图中的字段。所以我第一次调用 api:
[NSURLConnection sendAsynchronousRequest:req
queue:NSOperation.mainQueue
completionHandler:
^(NSURLResponse *response, NSData *data, NSError *error)
{
// successfully fetch data using credentials
// assume complete code here including dispatch_async etc
self.data = data;
})];
那我要使用数据:
self.nameLabel.text = [self.data objectForKey:@"name"];
self.userid = [self.data objectForKey:@"userid"];
但是请求还没有完成,所以程序会抛出错误。
并且我想进行更多调用以获取不同类型的数据,例如,来自首页相册的图片,这些图片依赖于我只能从上面的请求中获取的用户 ID。那么如何进行下一次后续通话以确保我已经拥有第一次通话的用户 ID?
处理这种情况的正确方法是什么?
我应该改用同步请求吗? 我应该在所有请求完成之前放置一个加载符号吗?如果是这样,我如何测试请求是否实际完成?它们异步的意义何在?
【问题讨论】:
标签: ios objective-c api rest nsurlconnection