【发布时间】:2019-05-25 10:15:14
【问题描述】:
我有一个领域数据库模型,例如:
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: Optional(false), pk: Optional(123456), profilePicUrl: Optional("") of type '__UserDataValue' for 'bool' property 'Users.isVerified '。'
服务用户模型:
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)
}
}
如何转换?
【问题讨论】:
-
您已将 pk var 定义为 ServiceUserModel 中的可选变量,但在您的 Realm 对象 User 中它不是可选的。
-
您还提到了使用 for 循环保存数据和性能问题。您能否提供有关这意味着什么以及您遇到的性能问题类型的代码?