Cocoa RestKit 2.0删除RKSManagedObjectStore但保留NSManagedObjectModel
我建立了一个项目,其中所有来自服务器的数据都使用托管模型写入核心数据管理存储。我使用mogenerator从核心数据模型生成了所有实体。我将所有RestKit映射集成到我的实体中Cocoa RestKit 2.0删除RKSManagedObjectStore但保留NSManagedObjectModel,cocoa,core-data,restkit,restkit-0.20,Cocoa,Core Data,Restkit,Restkit 0.20,我建立了一个项目,其中所有来自服务器的数据都使用托管模型写入核心数据管理存储。我使用mogenerator从核心数据模型生成了所有实体。我将所有RestKit映射集成到我的实体中 NSError *error = nil; NSURL *modelURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"dataModel" ofType:@"momd"]]; // NOTE: Due to an iOS 5 b
NSError *error = nil;
NSURL *modelURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"dataModel" ofType:@"momd"]];
// NOTE: Due to an iOS 5 bug, the managed object model returned is immutable.
NSManagedObjectModel *managedObjectModel = [[[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL] mutableCopy];
RKManagedObjectStore *managedObjectStore = [[RKManagedObjectStore alloc] initWithManagedObjectModel:managedObjectModel];
// Initialize the Core Data stack
[managedObjectStore createPersistentStoreCoordinator];
NSPersistentStore __unused *persistentStore = [managedObjectStore addInMemoryPersistentStore:&error];
NSAssert(persistentStore, @"Failed to add persistent store: %@", error);
[managedObjectStore createManagedObjectContexts];
// Set the default store shared instance
[RKManagedObjectStore setDefaultStore:managedObjectStore];
现在由于时间限制,计划发生了变化。数据根本不应该被存储。数据应该从服务器读取并直接显示。没有储蓄,就没有坚持。因此,我希望切断RKManagedObjectStore,保留实体和映射,并在请求成功或RKPaginator Resultl时从“RKMappingResult*mappingResult”读取数据。使用RKManagedObjectStore和RKPaginator的示例:
[objectManager addResponseDescriptor:[RKResponseDescriptor responseDescriptorWithMapping:[Friend entityMapping:objectManager.managedObjectStore]
method:RKRequestMethodAny
pathPattern:nil
keyPath:@"items"
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]];
[objectManager setPaginationMapping:[self paginationMapping]];
self.paginator = [objectManager paginatorWithPathPattern:@"data"];
self.paginator.perPage = 20;
//Set completion block for this paginator
[self.paginator setCompletionBlockWithSuccess:^(RKPaginator *paginator, NSArray *objects, NSUInteger page) {
[weakSelf.dataArray addObjectsFromArray:objects];
} failure:^(RKPaginator *paginator, NSError *error) {
}];
但是,当我开始重新调用RKManagedObjectStore时,我在映射时开始遇到问题
'You must provide a managedObjectStore. Invoke mappingForClass:inManagedObjectStore: instead.'
Q.1我可以在没有RKManagedObjectStore的情况下使用Enitiy映射吗?我走的方向对吗
问题2.我可以移除商店并保留模型吗
任何提示、帮助或例子都会很好,以免我太投入其中,走错方向。
感谢Al您应该与需求变化作斗争,并使用核心数据作为信息的临时缓存来帮助内存管理(这样您就可以上下滚动列表,而不必一直加载所有内容)。这不应再花费任何时间来实施
RKManagedObjectStore
,则不能使用RkenityMapping
谢谢你提供的信息。我将继续保持现在的主运行中心,并希望得到它作为一个非常轻的版本工作。