-1

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

第一行:从 Web 服务获取 Token

   tokenID = [self getTokenID]; 

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

[self sendRequest:tokenID];

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

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

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

问候

4

2 回答 2

1

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

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

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

[self sendRequest:tokenID];

对不起,我含糊不清,但我需要在 getTokenID 中查看您的代码,以便为您提供更好的答案。

于 2012-12-12T14:50:07.737 回答
0

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

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

于 2012-12-12T14:37:26.677 回答