Я копіюю існуючу програму Objective-C TV Show на нову версію Swift за допомогою Xcode 6.1 і маю деякі проблеми з CoreData.
Я створив модель з 4 сутностей, створив їх підклас NSManagedObject (у Swift), і всі файли мають відповідні цілі додатків, встановлені (для "Компіляції джерел").
Я все ще отримую цю помилку щоразу, коли намагаюся вставити нову сутність:
CoreData: попередження: Неможливо завантажити клас із назвою "Шоу" для сутності "Шоу". Клас не знайдено, замість нього використано NSManagedObject за замовчуванням.
Кілька коментарів:
Під час збереження в Основні дані я використовую контекстний спосіб батьків-дочірніх, щоб дозволити фонову потокову потокову роботу. Я роблю це, налаштовуючи ManagedObjectContext, використовуючи:
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...
})