كيف يمكنك إنشاء nsmanagedobjectcontext
-
02-10-2019 - |
سؤال
في البيانات الأساسية لجهاز iPhone ، كنت أحصل على كل أنواع الأخطاء التي تحاول حفظ البيانات إلى أ NSManagedObjectContext
.
أعتقد أن مشكلاتي كانت كلها علاقة بي باستخدام أ NSManagedObjectContext
التي تم استخدامها في خيوط متعددة.
لذلك أردت إنشاء جديد NSManagedObjectContext
وجرب ذلك ، لكن لا يمكنني العثور على رمز المثال لإنشاء مثيل جديد ...
أعلم أنها بسيطة ، لكنني أقدر حقًا أي مساعدة هنا.
لاحظ ، لقد رأيت هذا المقال على مستندات Apple: http://developer.apple.com/iphone/library/documentation/cocoa/conceptual/coredatautilitytutorial/articles/05_createstack.html
ولكن هذا يستخدم بعض التعليمات البرمجية التي لست على دراية بها ، مثل XMLSTORE والتي لا يتم دعمها على iPhone ، إلخ.
المحلول
هذا هو الرمز لإنشاء سياق جديد:
- (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];
}
لمزيد من المعلومات ، يرجى إلقاء نظرة على البرنامج التعليمي للبيانات الأساسية لـ Apple لنظام التشغيل iOS.
هتافات!