2
我使用Restkit同時發送了2個請求,並且我收到來自它們兩個的響應,但只有一個請求接收到任何對象。如果我逐一發送它們,那麼我的objectloader會收到所有對象。Restkit中的第二個請求沒有加載的對象
第一個請求:
self.firstObjectManager = [RKObjectManager sharedManager];
[self.firstObjectManager loadObjectsAtResourcePath:[NSString stringWithFormat: @"/%@.json", subUrl] usingBlock:^(RKObjectLoader *loader){
[loader.mappingProvider setObjectMapping:designArrayMapping forKeyPath:@""];
loader.userData = @"design";
loader.delegate = self;
[loader sendAsynchronously];
}];
第二個請求:
self.secondObjectManager = [RKObjectManager sharedManager];
[self.secondObjectManager loadObjectsAtResourcePath:[NSString stringWithFormat: @"/%@.json", subUrl] usingBlock:^(RKObjectLoader *loader){
[loader.mappingProvider setObjectMapping:designerMapping forKeyPath:@""];
loader.userData = @"designer";
loader.delegate = self;
[loader sendAsynchronously];
}];
我objecloader:
-(void)objectLoader:(RKObjectLoader *)objectLoader didLoadObjects:(NSArray *)objects
{
//NSLog(@"This happened: %@", objectLoader.userData);
if (objectLoader.userData == @"design") {
NSLog(@"Design happened: %i", objects.count);
}else if(objectLoader.userData == @"designer"){
NSLog(@"designer: %@", [objects objectAtIndex:0]);
}
}
我的回答是:
2012-11-18 14:36:19.607 RestKitTest5[14220:c07] Started loading of request: designer
2012-11-18 14:36:22.575 RestKitTest5[14220:c07] I restkit.network:RKRequest.m:680:-[RKRequest updateInternalCacheDate] Updating cache date for request <RKObjectLoader: 0x95c3160> to 2012-11-18 19:36:22 +0000
2012-11-18 14:36:22.576 RestKitTest5[14220:c07] response code: 200
2012-11-18 14:36:22.584 RestKitTest5[14220:c07] Design happened: 0
2012-11-18 14:36:22.603 RestKitTest5[14220:c07] I restkit.network:RKRequest.m:680:-[RKRequest updateInternalCacheDate] Updating cache date for request <RKObjectLoader: 0xa589b50> to 2012-11-18 19:36:22 +0000
2012-11-18 14:36:22.605 RestKitTest5[14220:c07] response code: 200
2012-11-18 14:36:22.606 RestKitTest5[14220:c07] designer: <DesignerData: 0xa269fc0>
更新:設置我基本URL
RKURL *baseURL = [RKURL URLWithBaseURLString:@"http://iphone.meer.li"];
[RKObjectManager setSharedManager:[RKObjectManager managerWithBaseURL:baseURL]];
解決方案
問題是,我同時用於對象管理的共享管理器,所以我結束up做:
RKURL *baseURL = [RKURL URLWithBaseURLString:@"http://iphone.meer.li"];
RKObjectManager *myObjectManager = [[RKObjectManager alloc] initWithBaseURL:baseURL];
self.firstObjectManager = myObjectManager;
和:
RKURL *baseURL = [RKURL URLWithBaseURLString:@"http://iphone.meer.li"];
RKObjectManager *myObjectManager = [[RKObjectManager alloc] initWithBaseURL:baseURL];
self.secondObjectManager = myObjectManager;
仍然沒有雪茄。它加載設計師,但不是設計。如果我等待設計完成加載,然後推下設計器請求,那麼兩個加載。我更新了我的帖子,我如何創建我的基礎網址。不知道如果有幫助。 –
看我的編輯。祝你好運;) – Sandeep
這工作...真棒。我已經發布了上面的代碼。非常感謝 :-)。 –