RESTKit:RKManagedObjectStore & 删除数据

Posted

技术标签:

【中文标题】RESTKit:RKManagedObjectStore & 删除数据【英文标题】:RESTKit: RKManagedObjectStore & Deleting the data 【发布时间】:2014-04-23 13:43:47 【问题描述】:

下面是我必须设置 ObjectStore 的代码,它工作正常。

- (RKManagedObjectStore *)setupCoreDataWithRESTKit
    NSError * error;
    NSURL * modelURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"app" ofType:@"momd"]];
    NSManagedObjectModel * managedObjectModel = [[[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL] mutableCopy];
    self.managedObjectStore = [[RKManagedObjectStore alloc] initWithManagedObjectModel:managedObjectModel];

    [self.managedObjectStore createPersistentStoreCoordinator];

    NSArray * searchPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString * documentPath = [searchPaths objectAtIndex:0];
    NSPersistentStore * persistentStore = [self.managedObjectStore addSQLitePersistentStoreAtPath:[NSString stringWithFormat:@"%@/app.sqlite", documentPath] fromSeedDatabaseAtPath:nil withConfiguration:nil options:nil error:&error];
    NSAssert(persistentStore, @"Failed to add persistent store with error: %@", error);

    if(!persistentStore)
        NSLog(@"Failed to add persistent store: %@", error);
    

    [self.managedObjectStore createManagedObjectContexts];
    return self.managedObjectStore;


- (id)optionsForSqliteStore 
    return @
             NSInferMappingModelAutomaticallyOption: @YES,
             NSMigratePersistentStoresAutomaticallyOption: @YES
             ;

问题 1:我需要多久调用一次此代码?应用程序第一次启动时只有一次?或者每次启动应用程序时?还是每次发布时我需要访问商店一次?

问题 2:我缓存每个用户的数据。如果用户退出应用程序,我想删除所有数据/对象(或数据存储区?),有什么最佳做法建议吗?

【问题讨论】:

【参考方案1】:

我需要多久调用一次此代码?

每次启动应用程序时

我缓存每个用户的数据。如果用户退出应用程序,我想删除所有数据/对象(或数据存储区?),有什么最佳做法建议吗?

如果要删除所有内容,则销毁托管对象上下文并存储协调器并从磁盘中删除 SQLite 文件。

如果你只是想删除一些东西,那么从上下文中删除托管对象并保存上下文(和持久存储)。

【讨论】:

以上是关于RESTKit:RKManagedObjectStore & 删除数据的主要内容,如果未能解决你的问题,请参考以下文章

RestKit 0.20:restkit 对象映射使属性映射加倍

将“import <RestKit/RestKit.h>”添加到 AppDelegate.m 的问题

RestKit 与直接 CoreData

Restkit 0.20.x cocoapods 安装问题 - 编译但找不到 RestKit 的导入

RestKit / Core Data / Offline - 我需要 UUID 还是 RestKit 足够聪明?

RestKit 核心数据集成