我是restkit和iOS的新手。我使用xcode 4.2和RestKit 0.2。我一直在開發一個iPhone應用程序,與我創建的一些REST Web服務進行通信,現在我面臨一個問題。 我的一些網絡服務打算多次打電話。第一個請求沒有問題,運行,但是當我嘗試再次撥打電話,我得到這個錯誤:Restkit + Objective-c - 對同一個Web服務的多個調用
'NSInternalInconsistencyException', reason: 'Cannot add a request descriptor for the same object class as an existing request descriptor.'
我明白這個錯誤是什麼意思但還沒有找到一種方法來實現通話,可以被重用。我有一種感覺,我做錯了。下面是我使用來調用Web服務的功能之一:
- (void) restAddPlayer:(addPlayer*)add block:(void (^)(id))block{
// Load the object model via RestKit
RKObjectManager *objectManager = [RKObjectManager sharedManager];
RKObjectMapping *categoryRequestMapping = [RKObjectMapping requestMapping];
[categoryRequestMapping addAttributeMappingsFromDictionary:@{@"gName": @"groupName",@"pass":@"pass"}];
RKObjectMapping *reqMapping = [RKObjectMapping requestMapping];
[reqMapping addAttributeMappingsFromDictionary:@{@"plName": @"playerName"}];
[reqMapping addRelationshipMappingWithSourceKeyPath:@"groupInfo" mapping:categoryRequestMapping];
RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:reqMapping objectClass:[addPlayer class] rootKeyPath:nil];
[objectManager addRequestDescriptor:requestDescriptor];
objectManager.requestSerializationMIMEType = RKMIMETypeJSON;
[objectManager postObject:add path:@"addPlayer"parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
NSArray* statuses = [mappingResult array];
//NSLog(@"Loaded statuses: %@", statuses);
// _result = [statuses objectAtIndex:0];
block(statuses);
}
failure:^(RKObjectRequestOperation *operation, NSError *error){
NSLog(@"Hit error: %@", error);
block(nil);
}
];
}
我知道我加入的請求描述符,當我再次調用該函數它試圖添加另一個,從而錯誤。我想知道的是如何處理這個問題,這樣我就可以多次調用Web服務,並在發佈的對象中使用不同的信息。
感謝所有提前。
問候
嗯,我覺得有點笨,沒有想到這個我的自我...它運作良好。非常感謝你 – user2119777 2013-03-19 15:35:08