【问题标题】:How to know if data is ready如何知道数据是否准备好
【发布时间】:2012-10-19 19:50:20
【问题描述】:

我正在使用 RestKit 框架来解析来自 Web 服务的 JSON 数据。发送请求 URL 后,数据将自动下载,并可在 RestKit 的委托方法之一中使用。我把它写成一个可重用的包装类,这样我就可以在需要的地方创建这个类的一个实例,并且只传递要下载的 URL,其余的过程将由该类完成。现在,我有一个问题,实例如何知道下载后数据可以使用?我怎样才能做到这一点? NSNotification 还是委托?任何编码示例或建议都可能有所帮助。提前致谢。

【问题讨论】:

  • 你走在正确的道路上。您的问题是如何在 Objective-C 中使用 NSNotificationCenter 或委托?
  • 如果您无法决定使用哪种模式并且想要灵活的代码,我建议您实现 both 并且我还会添加回调块作为第三个选项。
  • @0x8badf00d 是的。你说的对。我不知道如何在目标中实现委托 - c。任何例子都可能有帮助!谢谢

标签: iphone delegates restkit


【解决方案1】:

我发现在 RestKit 中处理回调最方便的方法是使用完成块。你可以绕过这个完成块来实现你想要做的事情。

这是一个如何创建完成块并传递它的示例。

-(void)startRequest {

    RKRequestDidLoadResponseBlock block = ^(RKResponse *response) {

        //your completion code
    };

    [self sendRequestWithCompletionBlock:block];
}

-(void)sendRequestWithCompletionBlock:(RKRequestDidLoadResponseBlock)completionBlock {

    RKRequest *request = [RKRequest requestWithURL:[NSURL URLWithString:@"www.google.com"]];
    //configure request;
    request.onDidLoadResponse = completionBlock;

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    • 1970-01-01
    • 2021-04-09
    • 2011-06-01
    • 2018-03-11
    • 1970-01-01
    相关资源
    最近更新 更多