سؤال

في البيانات الأساسية لجهاز 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.

هتافات!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top