Cocoa RestKit 2.0删除RKSManagedObjectStore但保留NSManagedObjectModel

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

我建立了一个项目,其中所有来自服务器的数据都使用托管模型写入核心数据管理存储。我使用mogenerator从核心数据模型生成了所有实体。我将所有RestKit映射集成到我的实体中

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
  • 您可以保留模型,但无法使用它(托管对象需要与MOC关联创建)

  • 谢谢你提供的信息。我将继续保持现在的主运行中心,并希望得到它作为一个非常轻的版本工作。