我有一个像这样的领域数据库模型:
import RealmSwift
class User: Object {
let isVerified = RealmOptional<Bool>()
@objc dynamic var pk = 0
@objc dynamic var profilePicUrl: String? = nil
}
我正在从服务中获取数据,并且它返回与领域模型相同的名称和类型。
我想将此数据保存到db。但是,当我尝试将模型转换为realm model
时,会出现错误。
let data = [Users(value: serviceUser)] -> serviceUser comes from service.
在保存之前,当我尝试进行转换时,出现此错误:
“ RLMException”,原因:“无效”的值'ServiceUserModel(isVerified:Optional(false),pk:Optional(123456),profilePicUrl:可选(“”)类型为'bUser'属性'Users.isVerified的'UserDataValue' '。'
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)
}
}
如何转换?
答案 0 :(得分:0)
我认为问题出在这里:
当我尝试转换时
在处理RealmOptional时,必须将其设置为.value
属性。
let isVerified = RealmOptional<Bool>()
现在isVerified.value为nil
isVerified.value = true
现在是真的
但是您不能使用Bool?
来设置值。
pk
也是如此。
您应该实现convenience init()
并为可选选项提供一些默认值