In Xcode 7 automatically generated core data classes have the core data variables in an extension in a separate file. They also make every variable optional. I understand some of the reasoning for this, core data objects don't have a swift init function. How does one know a variable is never nil?
However, I have several variables assigned within override func awakeFromInsert()
. As soon as they are created/inserted they have a non-optional value. These variables are also set to be not optional in the core data model. Is there any reason that I shouldn't change such variables to non optional in the extension?
Also, if @NSManaged var bioRatio: NSNumber?
has an attribute value of Integer 32 in the core data model, is there any reason I can't declare it as @NSManaged var bioRatio: Int
in the extension?
extension ShoppingItems {
@NSManaged var bioRatio: NSNumber?
@NSManaged var dateCreated: NSDate?
@NSManaged var dateModified: NSDate?
@NSManaged var dateSynced: NSDate?
@NSManaged var coreDiesel: NSNumber?
@NSManaged var coreHaveStock: NSNumber?
@NSManaged var coreMonthlyStock: NSNumber?
@NSManaged var myName: String?
@NSManaged var recordChangeTag: String?
@NSManaged var stdQty: NSNumber?
@NSManaged var urgency: NSNumber?
@NSManaged var uuidAccount: String?
@NSManaged var uuidFamily: String?
@NSManaged var uuidKey: String?
@NSManaged var uuidUnit: String?
@NSManaged var uuidUser: String?
@NSManaged var myAccount: Accounts?
@NSManaged var coreMyCategoryLinks: NSSet?
@NSManaged var coreMyPackageHistories: NSSet?
@NSManaged var coreMyPackages: NSSet?
@NSManaged var myUnit: Units?
}