同步方法 - 目标C.

时间:2012-12-12 14:29:40

标签: ios restkit

我使用reskit来comsume webservice 我有以下代码:

第一行:从Web服务获取令牌

   tokenID = [self getTokenID]; 

第二行从同一个Web服务获取JSON

[self sendRequest:tokenID];

但是当执行程序时......令牌ID还没有为第二行做好准备...... 然后我得到401错误(未经授权)

是否可以同步这两种方法? 例如:

当“getTokenID”方法完成后,执行第二个方法“sendRequest:tokenID”

此致

2 个答案:

答案 0 :(得分:1)

我认为您在getTokenID中使用异步调用 当我查看Restkit的文档时,您的代码中应该有这样的内容:

[operation setCompletionBlockWithSuccess:^(RKObjectRequestOperation *operation,     RKMappingResult *result) {
 ** CODE TO EXECUTE AFTER THE REQUEST IS FINISHED **
} failure:nil];

在完成块中,您可以从结果中获取令牌并执行

[self sendRequest:tokenID];

很抱歉我很模糊,但我需要在getTokenID中看到你的代码,以便给你一个更好的答案。

答案 1 :(得分:0)

我认为[self getTokenID]不会进行网络服务调用。我认为你没有展示的其他代码正在执行请求。执行请求时,它可以是异步的。在这种情况下,当你想要它时,它可能还没有准备好。

所以我的建议是:查找正在执行请求的代码,并找到一种方法来挂钩,以便在请求完成时得到通知。它可以是代表或块的形式。