我是 IOS 开发和 Restkit 的新手。 我正在创建一个应用程序,其中数据以 json 格式从外部 web 服务加载,并且有成千上万的用户对象,它们在 coredata 中映射。
我正在加载这些用户如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
DBUser* user = [DBUser currentUser];
if ([user isLoggedIn]) {
[self loadRequiredData];
}
}
然后在加载RequiredData
- (void)loadRequiredData {
RKObjectManager *manager = [RKObjectManager sharedManager];
manager.requestQueue.concurrentRequestsLimit = 10;
[manager loadObjectsAtResourcePath:@"/users" delegate:self];
}
将CoreData中的所有用户对象映射起来差不多需要4-5分钟。 现在的问题是,当 Restkit 忙于在 CoreData 中映射这数千个用户时,发送到 webservice 的任何其他请求都会等待。 当所有用户都映射到 CoreData 中时,将执行等待的请求。
我什至尝试将 ConcurrentRequestLimit 的数量增加到 10
manager.requestQueue.concurrentRequestsLimit = 10;
但这也行不通
那么有什么方法可以在后台或其他线程中映射对象吗?以便在此期间发送的任何其他请求都应快速执行。
最佳答案
像这样调用方法loadRequiredData [自己在后台执行选择器:@selector(loadRequiredData) withObject:nil];
关于iphone - 后台的 Restkit 对象映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13141405/