Iphone 如何创建NSManagedObjectContext
在iPhone的核心数据中,我试图将数据保存到Iphone 如何创建NSManagedObjectContext,iphone,core-data,nsmanagedobjectcontext,Iphone,Core Data,Nsmanagedobjectcontext,在iPhone的核心数据中,我试图将数据保存到NSManagedObjectContext时遇到各种各样的错误 我相信我的问题都与我使用多线程中使用的NSManagedObjectContext有关 所以我想创建一个新的NSManagedObjectContext并尝试一下,但我找不到简单创建新实例的示例代码 我知道这很简单,但我真的很感激这里的任何帮助 注意,我在Apple docs上看到了这篇文章: 但这使用了一些我不熟悉的代码,比如iPhone不支持的XMLStore等。这是创建新上下文的
NSManagedObjectContext
时遇到各种各样的错误
我相信我的问题都与我使用多线程中使用的NSManagedObjectContext
有关
所以我想创建一个新的NSManagedObjectContext
并尝试一下,但我找不到简单创建新实例的示例代码
我知道这很简单,但我真的很感激这里的任何帮助
注意,我在Apple docs上看到了这篇文章:
但这使用了一些我不熟悉的代码,比如iPhone不支持的XMLStore等。这是创建新上下文的代码:
- (NSManagedObjectContext *)managedObjectContext {
NSManagedObjectContext *managedObjectContext = nil;
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
managedObjectContext = [[NSManagedObjectContext alloc] init];
[managedObjectContext setPersistentStoreCoordinator:coordinator];
[managedObjectContext setUndoManager:nil];
}
return [managedObjectContext autorelease];
}
只需创建上下文的新实例并设置您想要使用的存储即可
如果你有多家店铺,你会选择这样的方式:
- (NSManagedObjectContext *)managedObjectContextForStore:(NSString *)store {
NSManagedObjectContext *managedObjectContext = nil;
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinatorForStore:store];
if (coordinator != nil) {
managedObjectContext = [[NSManagedObjectContext alloc] init];
[managedObjectContext setPersistentStoreCoordinator:coordinator];
[managedObjectContext setUndoManager:nil];
}
return [managedObjectContext autorelease];
}
有关更多信息,请查看
干杯 谢谢VFN,不过
[self-persistentStoreCoordinator]
来自哪里?这是从超类继承的吗?我的代码在一个实用程序类中,我应该如何获取persistentStoreCoordinator?您需要实现设置持久性存储的代码。看看这个来自苹果的示例:从主线程使用MOC获取persistentStoreCoordinator安全吗?我对此表示怀疑,但我只是想问一下……好吧,与其在线程上创建MOC,我的观点是必须在一个中心位置上创建上下文,然后发送(通常是AppDelegate)并传递给其他对象。虽然我看不到从其他线程的MOC获取persistentStoreCoordinator有任何问题。persistentStoreCoordinator应该是线程安全的,因为它没有被修改成MOC。你这么说很有趣,因为我刚刚看到了TopSongs应用程序,并通读了它是如何设置MOC的,而且它似乎是以与我相同的方式(至少类似)完成的。。。但我似乎随机得到了如下错误:NSManagedObjectContext无法删除其他上下文中的对象
。这让我感到困惑…[可能对创建和管理NSManagedObjectContext非常有帮助。