Автоматически сгенерированная ошибка swift-кода CoreData

#macos #core-data #swift

#macos #core-data #swift

Вопрос:

Я новичок в Swift и Core data. Я создал простое приложение OS X с использованием core data. Итак, в AppDelegate.swift много автоматически сгенерированного кода. Я просто хочу сохранить имя и фамилию при нажатии кнопки в главном меню.xib Я некоторое время искал, как использовать core data в приложении OS X с использованием swift, но безуспешно. Это мой код:

 @IBAction func buttonAggiungiNewDipendentePressed(sender : AnyObject) {

        println("Button pressed from popover");

        //var AppDel:AppDelegate = (NSApplication.sharedApplication().delegate as AppDelegate)

        let context = self.managedObjectContext!


        var nome = popAggiungiDipendenteNome.stringValue;
        var cognome = popAggiungiDipendenteCognome.stringValue;

        var newUser = NSEntityDescription.insertNewObjectForEntityForName("Dipendenti", inManagedObjectContext: context) as NSManagedObject

        newUser.setValue(nome, forKey: "nome")
        newUser.setValue(cognome, forKey: "cognome")

        context.save(nil)

        popover.performClose(true);


    }
  

Я получаю следующий сбой: Поток 1: EXC_BAD_INSTRUCTION (code= EXC_I386_INVOP, subcode = 0x0) внутри автоматически генерируемого кода в AppDelegate.swift:

 var managedObjectModel: NSManagedObjectModel? {
        // Creates if necessary and returns the managed object model for the application.
        if let mom = _managedObjectModel {
            return mom
        }

       let modelURL = NSBundle.mainBundle().URLForResource("ElencoTelefonicoAkhela2", withExtension: "momd")
        _managedObjectModel = NSManagedObjectModel(contentsOfURL: modelURL)
        return _managedObjectModel!
    }
    var _managedObjectModel: NSManagedObjectModel? = nil
  

Когда он пытается вернуть managedObjectModel. Есть идеи? Заранее спасибо

Ответ №1:

вместо insertNewObjectForEntityForName используйте:

 let en = NSEntityDescription.entityForName("Photo", inManagedObjectContext: context)
let photo:Photo = Photo(entity:en, insertIntoManagedObjectContext:context)