【发布时间】:2013-11-04 21:25:41
【问题描述】:
问题是Reskit是否使用CoreData,这是因为我不知道使用它有什么好处或建议在什么情况下使用它。
这个问题是因为我有一个使用CoreData的应用程序(老开发者做了这个工作),我觉得它消耗了大量资源并且使应用程序变慢。
我有一个新闻源,所以这里的数据总是在变化,所以我不需要保留我认为的数据?但是我有一些对象,比如我的个人资料图片和偏好,我想在本地存储。
*更新*
这是定义“持久性”的代码(我认为)
NSManagedObjectModel *managedObjectModel = [NSManagedObjectModel mergedModelFromBundles:nil];
RKObjectManager* man = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:BASE_URL]];
man.requestSerializationMIMEType = RKMIMETypeJSON;
[RKObjectManager setSharedManager:man];
[AFNetworkActivityIndicatorManager sharedManager].enabled = YES;
RKManagedObjectStore *managedObjectStore = [[RKManagedObjectStore alloc] initWithManagedObjectModel:managedObjectModel];
man.managedObjectStore = managedObjectStore;
//configuring Mappings
/**some mappings**/
[managedObjectStore createPersistentStoreCoordinator];
NSString *storePath = [RKApplicationDataDirectory() stringByAppendingPathComponent:@"Database.sqlite"];
NSError *error;
NSPersistentStore *persistentStore = [managedObjectStore addSQLitePersistentStoreAtPath:storePath fromSeedDatabaseAtPath:nil withConfiguration:nil options:nil error:&error];
NSAssert(persistentStore, @"Failed to add persistent store with error: %@", error);
// Create the managed object contexts
[managedObjectStore createManagedObjectContexts];
// Configure a managed object cache to ensure we do not create duplicate objects
managedObjectStore.managedObjectCache = managedObjectStore.managedObjectCache;
【问题讨论】:
-
您的性能问题是什么,为什么您认为是 Core Data 导致了这些问题?它实际上非常快速且经过良好优化,并且在大多数情况下会比直接使用 SQLite 存储提供更好的结果(并且更易于使用)。您的存储需求究竟是什么,您还在考虑什么?如果您根本不需要持久化数据,那么千万不要!否则,问题真的应该是“Core Data 的哪些替代方案更适合这个问题?”
-
@ReidBelton 有时我认为映射需要很多时间?或将东西保存在本地数据库中,但我只是想理解它。也许我误解了一些东西,我认为它是CoreData?但我知道它使用的是 SQLite(参见更新)。与此同时,我只需要存储一些用户偏好和一些数据(如头像、简历和应用程序配置)......我认为这个问题是“错误的”,但我暂时无法表达另一个问题
-
Core Data 非常高效且非常易于使用。在我看来,几乎没有理由不使用 Core Data……我最近在 iOS 中使用 SQLite 的唯一一次是我需要全文搜索的时候。如果您在使用 Core Data 时遇到性能问题,那么问题出在您的设计上,而 SQLite 不会解决这个问题。如果你没有问题......好吧,你没有问题:)
标签: ios iphone core-data restkit