Reputation: 239
so I have two objects like the following :
class BankModel: Object {
dynamic var bankModelId: String = ""
dynamic var bankName: String!
dynamic var bankBranch: String?
var coordinate: List<LocationModel>!
dynamic var buyingTWD: String?
dynamic var buyingUSD: String?
dynamic var sellingTHB: String?
dynamic var sellingUSD: String?
override static func primaryKey() -> String? {
return "bankModelId"
}
}
and
class LocationModel: Object {
dynamic var locationId: String = ""
dynamic var latitude: String = ""
dynamic var longitude: String = ""
override static func primaryKey() -> String? {
return "locationId"
}
}
when I try to append LocationModel
let realm = try! Realm()
let bankModel = BankModel()
let coordinate = LocationModel()
coordinate.locationId = "1"
coordinate.longitude = "20.11111"
coordinate.latitude = "123.21412"
bankModel.bankModelId = "1"
bankModel.bankName = "SuperRich Orange"
bankModel.bankBranch = "HQ"
bankModel.buyingUSD = "\(buyingUSDRepalced)"
bankModel.buyingTWD = "\(buyingTWDRepalced)"
bankModel.coordinate.append(coordinate)
try! realm.write {
realm.add(bankModel, update: true)
}
I got this fatal error:
unexpectedly found nil while unwrapping an Optional value
No clue why is this happening, any hint is appreciated!
Upvotes: 1
Views: 238
Reputation: 5223
The coordinate
is nil
. You haven't initialized it. The compiler doesn't complain because you declared it as an implictly unwrapped optional, which can be nil
. Use
var coordinate = List<LocationModel>()
instead.
Upvotes: 2