gpt4 book ai didi

ios - 多个请求的 RestKit ActivityIndi​​cator

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:33:39 26 4
gpt4 key购买 nike

我有一个 IBAction,它通过我的 iPad 应用程序中的按钮调用。

IBaction 然后调用三个不同的方法来发起 RestKit 请求。

为所有三个请求检查检索对象的最佳方法是什么?

目标是在第一个请求时显示一个 activityIndi​​cator,并在所有三个请求的对象检索时停止/隐藏 activityIndi​​cator。

我是 RestKit 的新手,所以如果这个问题太简单了,请原谅我。我试图在 RestKit API - 文档的帮助下自己找到解决方案。

最佳答案

我想您使用的是异步请求。一个简单的解决方案是检查您的 RKObjectLoderDelegate- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects 方法是否所有数据已经加载。

当发起 RestKit 请求时,您可以向请求添加一个“标签”(在 RestKit 中称为 userData)并稍后在委托(delegate)回调中检索该标签。

例如,您可以实现以下逻辑:

当您创建请求时,为每个请求添加特定的用户数据:

RKObjectLoader *loader = [[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/getMyData" objectMapping:mapping delegate:self];     
[loader setUserData:@"FirstRequest"];
...
RKObjectLoader *loader = [[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/getMyData" objectMapping:mapping delegate:self];
[loader setUserData:@"ThirdRequest"];

并检查didLoadObjects:中的标签

- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects {
if ([[objectLoader userData] isEqual:@"FirstRequest"]) {
self.firstRequestData = objects;
}
... //handle the remaining requests
if (self.firstRequestData && self.secondRequestData && self.thirdRequestData) {
[self hideMyActivityIndicator];
}
}

不要忘记在加载请求时处理错误情况。

或者,如果这种方法不适合您的情况 - 您可以在单独的队列中添加和管理请求并跟踪进度。如果您需要有关第二个选项的更多信息,请告诉我。

关于ios - 多个请求的 RestKit ActivityIndi​​cator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8138893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com