I use the reskit to comsume webservice我有以下代码:
第一行:从 Web 服务获取令牌
tokenID = [self getTokenID];
第二行从同一 Web 服务获取 JSON
[self sendRequest:tokenID];
但是当执行程序时.. 令牌 ID 还没有准备好第二行...然后我收到 401 错误(未经授权)
是否可以同步两种方法?例如:
当"getTokenID"方法完成后,执行第二个方法"sendRequest:tokenID"
问候
我认为您正在getTokenID中使用异步调用当我查看 Restkit 的文档时,您的代码中应该有这样的东西:
[operation setCompletionBlockWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *result) {
** CODE TO EXECUTE AFTER THE REQUEST IS FINISHED **
} failure:nil];
在那里,在完成块中,您可以从结果中获取令牌并执行您的
[self sendRequest:tokenID];
抱歉,我太模糊了,但我需要在getTokenID中查看您的代码才能给您更好的答案。
我认为[self getTokenID]
不进行网络服务调用。我认为您没有显示的其他一些代码正在执行请求。执行请求时,它可以是异步的。在这种情况下,令牌 ID 可能尚未准备就绪。
所以我的建议是:寻找正在执行请求的代码,并找到一种方法来挂钩到它,以便在请求完成时收到通知。它可以是委托或块的形式。