At the moment I'm storing one of my classes as NSData in a plist and obviously that isn't a good way to do it.
So I'm trying to set up Core Data, but my class has Structs. This is what I have:
import Foundation
import CoreData
class Favourite: NSManagedObject {
@NSManaged var origin: Stop
struct Stop {
var name: String;
var id: String;
}
}
But this is no good because it says:
Property cannot be marked as @NSManaged because its type cannot be represented in Objective-C
Furthermore, if this error did not occur, I don't know what I'd set it up as in my xcdatamodeld file.
I guess I could store the values in the struct and assign on initialisation of the object? Is this the most optimal/clean way?
I will proceed like this :
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
}
}
}
Very interesting article, you should read: http://www.jessesquires.com/better-coredata-models-in-swift/