我有一个领域db模型,类似于:
import RealmSwift
class User: Object {
let isVerified = RealmOptional<Bool>()
@objc dynamic var pk = 0
@objc dynamic var profilePicUrl: String? = nil
}我从服务获取数据,它返回相同的名称和类型,就像领域模型一样。
我想把这些数据保存到数据库中。但是,当我试图将模型转换为realm model时,它会产生错误。
let data = [Users(value: serviceUser)] -> serviceUser comes from service.在保存之前,当我尝试转换时,我会得到以下错误:
‘'RLMException',原因:’无效值'ServiceUserModel(isVerified:可选(假),pk:可选(123456),profilePicUrl:可选(“”)类型为'__UserDataValue‘类型的'bool’属性‘Users.Veriize’。‘’
serviceUser模型:
public struct ServiceUserModel: Codable {
public var isVerified: Bool?
public var pk: Int?
public var profilePicUrl: String?
}由于性能问题,我不想使用for循环。我想一次保存这些数据。
保存方法:
func save(users: [Users]){
try! database.write {
database.add(users)
}
}我怎样才能把它转换?
发布于 2019-05-25 14:03:38
我认为问题就在这里:
当我试图皈依
在处理RealmOptional时,必须设置它的.value属性。
let isVerified = RealmOptional<Bool>()现在isVerified.value是零
isVerified.value = true现在是真的了
但是您不能使用Bool?来设置值。
这同样适用于pk。
您应该实现convenience init(),并为选项提供一些默认值。
https://stackoverflow.com/questions/56303872
复制相似问题