Как сохранить структуру Swift в основных данных на iOS?

на данный момент я храню один из моих классов как NSData в plist, и, очевидно, это не лучший способ сделать это.

поэтому я пытаюсь настроить основные данные, но мой класс имеет структуры. Вот что у меня есть:--2-->

import Foundation
import CoreData

class Favourite: NSManagedObject {
    @NSManaged var origin: Stop

    struct Stop {
        var name: String;
        var id: String;
    }
}

но это не хорошо, потому что он говорит

свойство не может быть помечено как @NSManaged, поскольку его тип не может быть представлен в Objective-C

кроме того, если эта ошибка не возникает, я не знаю, что я это как в моем xcdatamodeld файл.

думаю, я мог бы сохранить значения в структуре и назначить при инициализации объекта? Является ли это наиболее оптимальным / чистым способом?

1 ответов


Я буду действовать так :

import Foundation
import CoreData

    struct Stop {
       var name: String;
       var id: String;
    }

    class Favourite: NSManagedObject {

        @NSManaged var name: String
        @NSManaged var id: String

        var stop : Stop {
           get {
                return Stop(name: self.name, id: self.id)
            }
            set {
                self.name = newValue.name
                self.id = newValue.id
            }
         }
    }

очень интересная статья, вы должны прочитать:http://www.jessesquires.com/better-coredata-models-in-swift/