আমি এক্সকোড .1.১ ব্যবহার করে একটি নতুন সোফ্ট সংস্করণে একটি বিদ্যমান অবজেক্টিভ-সি টিভি শো অ্যাপ্লিকেশনটি নকল করছি এবং কোরডেটা নিয়ে কিছু সমস্যা রয়েছে।
আমি 4 টি সত্তার একটি মডেল তৈরি করেছি, তাদের এনএস-ম্যানেজডঅবজেক্ট সাবক্লাস তৈরি করেছি (সুইফটে) এবং সমস্ত ফাইলের উপযুক্ত অ্যাপ্লিকেশন লক্ষ্যমাত্রা সেট করা আছে ('সংকলন উত্সগুলির জন্য')।
আমি যখনই কোনও নতুন সত্ত্বা sertোকানোর চেষ্টা করি তখনও আমি এই ত্রুটিটি পাচ্ছি:
কোরডেটা: সতর্কতা: সত্তা 'শো' এর জন্য 'শো' নামে শ্রেণি লোড করতে অক্ষম। পরিবর্তে ডিফল্ট NSManagedObject ব্যবহার করে ক্লাস পাওয়া যায় নি।
কয়েকটি মন্তব্য:
কোর ডেটাতে সংরক্ষণ করার সময়, পটভূমি থ্রেডিংয়ের অনুমতি দেওয়ার জন্য আমি পিতা-সন্তানের প্রসঙ্গের উপায়টি ব্যবহার করি। আমি এটি ব্যবহার করে ম্যানেজডঅবজেক্ট কনটেক্সট সেট করে এটি করি:
lazy var managedObjectContext: NSManagedObjectContext? = {
// Returns the managed object context for the application (which is already bound to the persistent store coordinator for the application.) This property is optional since there are legitimate error conditions that could cause the creation of the context to fail.
let coordinator = self.persistentStoreCoordinator
if coordinator == nil {
return nil
}
var managedObjectContext = NSManagedObjectContext(concurrencyType: NSManagedObjectContextConcurrencyType.MainQueueConcurrencyType)
managedObjectContext.persistentStoreCoordinator = coordinator
return managedObjectContext
}()
এবং ডেটা ব্যবহার করে সংরক্ষণ করে:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { () -> Void in
var context = NSManagedObjectContext(concurrencyType: NSManagedObjectContextConcurrencyType.PrivateQueueConcurrencyType)
context.parentContext = self.managedObjectContext!
...rest of core data saving code here...
})