我是 IOS 开发和 Restkit 的新手。我正在创建一个应用程序,其中数据以 json 格式从外部 web 服务加载,并且有数千个用户对象,它们在 coredata 中映射。
我正在加载这些用户,如下所示:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
DBUser* user = [DBUser currentUser];
if ([user isLoggedIn]) {
[self loadRequiredData];
}
}
然后在 loadRequiredData
- (void)loadRequiredData {
RKObjectManager *manager = [RKObjectManager sharedManager];
manager.requestQueue.concurrentRequestsLimit = 10;
[manager loadObjectsAtResourcePath:@"/users" delegate:self];
}
在 CoreData 中映射所有用户对象大约需要 4-5 分钟。现在的问题是,当 Restkit 忙于在 CoreData 中映射这数千个用户时,发送到 web 服务的任何其他请求都会等待。当所有用户都映射到 CoreData 中时,就会执行等待请求。
我什至尝试将 ConcurrentRequestLimit 的数量增加到 10
manager.requestQueue.concurrentRequestsLimit = 10;
但这也行不通
那么有没有办法在后台或其他线程中映射对象?这样在此期间发送的任何其他请求都应该快速执行。