如何在對象管理器管理RestKit時手動設置託管對象屬性的值?RestKit:如何手動設置託管對象屬性的值?
我創建了一個RKObjectManager,其中包含用於核心數據持久性的持久性存儲。
我向對象管理器添加了RKEntityMapping和RKResponseDescriptor。
現在我可以打電話對象管理器這樣的:
[[RKObjectManager sharedManager]
getObjectsAtPath:@"/path_to_ressource"
parameters:nil
success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
// success
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
// report error
}];
而且數據在一個UITableView(我使用NSFetchedResultsController爲)很好的展示。 一切看起來不錯,我的數據是持久的。
現在我想添加一個屬性到依賴於響應描述符的keypath的實體。 我應該怎麼做,並在哪裏?
我第一次嘗試:
我加了屬性的核心數據實體,然後我在上面給出的代碼的成功塊嘗試這樣做:
for (Entity *s in mappingResult.dictionary[@"CurrentEntities"]) {
s.isCurrent = [NSNumber numberWithBool:YES];
}
for (Entity *s in mappingResult.dictionary[@"OldEntities"]) {
s.isCurrent = [NSNumber numberWithBool:NO];
}
假設JSON看起來是這樣的:
{
CurrentEntities: [{ id: 10, title: "bhubhbhu"}, { id: 11, title: "ezeze"}, ...],
OldEntities: [{ id: 0, title: "rf-reref"}, { id: 1, title: "vcvcvcvcv"}, ...]
}
設置新的本地屬性設置爲是後或NO,我確實可以看到結果在我的表視圖,但它看起來像這些更改將不會持續。
那麼有什麼想法?
編輯:
嗯,好像保存方面所作更改堅持正確:
NSError *error = nil;
[[RKManagedObjectStore defaultStore].mainQueueManagedObjectContext saveToPersistentStore:&error];
編輯:
其實它看起來像我必須每一個對象後,保存上下文否則改變我得到核心數據錯誤。