Hi fellow Swifties,
Been pulling my hair out for 8+ hours and need your help :( Tried creating 3 models that are cloudkit compatible, but the app crashes every time I try to add an Object to the modelContext.
Error: Thread 1: EXC_BREAKPOINT (code=1, subcode=0x18ec49d2c)
My guess: I think it is trying to force unwrap a nil...
Can do: Insert Item() and Location() into modelContext + syncronizing to cloudkit without any errors.
modelContext.insert(Item()) modelContext.insert(Location())
Can not do: Insert Object() into modelContext.
modelContext.insert(Object())
Am I not initialising them correctly? Is this approach bad? Or am I experiencing a bug?
Help is much appreciated <3
My 3 models:
@Model class Item: Identifiable { var id: UUID = UUID.init() var name: String = String() var barcode: String = String() @Relationship(deleteRule: .cascade, inverse: \Object.item) var objects: [Object]? @Attribute(.externalStorage) var photo: Data? init(name: String = String(), barcode: String = String(), photo: Data? = nil) { self.name = name self.barcode = barcode self.photo = photo } } @Model class Location: Identifiable { var id: UUID = UUID.init() var name: String = String() @Relationship(deleteRule: .cascade, inverse: \Object.location) var objects: [Object]? var isFavorite: Bool = Bool(false) var unwrappedObjects: [Object] { objects ?? [] } init(name: String = String(), isFavorite: Bool = Bool(false)) { self.name = name self.isFavorite = isFavorite } } @Model class Object: Identifiable { var id: UUID = UUID.init() var amount: Int = Int() var expiryDate: Date? = nil var location: Location? var item: Item? init(amount: Int = Int(), expiryDate: Date? = nil) { self.amount = amount self.expiryDate = expiryDate } }