Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 领域模型转换失败_Swift_Realm - Fatal编程技术网

Swift 领域模型转换失败

Swift 领域模型转换失败,swift,realm,Swift,Realm,我有一个领域数据库模型,如: import RealmSwift class User: Object { let isVerified = RealmOptional<Bool>() @objc dynamic var pk = 0 @objc dynamic var profilePicUrl: String? = nil } 在保存之前,当我尝试转换时,出现以下错误: “RLMEException”,原因:“无效值”ServiceUserMo

我有一个领域数据库模型,如:

import RealmSwift

class User: Object {

    let isVerified = RealmOptional<Bool>()   
    @objc dynamic var pk = 0
    @objc dynamic var profilePicUrl: String? = nil
}
在保存之前,当我尝试转换时,出现以下错误:

“RLMEException”,原因:“无效值”ServiceUserModel(isVerified:Optional(false),pk:Optional(123456),profilePicUrl:Optional(“”),类型为“\uu UserDataValue”,用于“bool”属性“Users.isVerified”。”

服务用户模型:

public struct ServiceUserModel: Codable {
    public var isVerified: Bool?    
    public var pk: Int?
    public var profilePicUrl: String?
}
由于性能问题,我不想对循环使用
。我想一次性保存此数据

保存方法:

func save(users: [Users]){

        try! database.write {
            database.add(users)
        }
    }

如何转换它?

我认为问题出在这里:

当我试图转换

在处理RealmOptional时,您必须设置它的
.value
属性

let isverify=RealmOptional()
现在isVerified.value为nil

isVerified.value=true
现在这是真的

但是您不能使用
Bool?
设置值

这同样适用于
pk


您应该实现
便利初始化()
,并为您的选项提供一些默认值

我认为问题出在这里:

当我试图转换

在处理RealmOptional时,您必须设置它的
.value
属性

let isverify=RealmOptional()
现在isVerified.value为nil

isVerified.value=true
现在这是真的

但是您不能使用
Bool?
设置值

这同样适用于
pk


您应该实现
便利初始化()
并为您的选项提供一些默认值

您已经在ServiceUserModel中将pk var定义为可选的,但在您的Realm object User中它不是可选的。您还提到了使用for循环保存数据和性能问题。您能否包含代码,说明这意味着什么以及您遇到的性能问题的类型?您已经在ServiceUserModel中将pk var定义为可选的,但在您的领域对象用户中它不是可选的。您还提到了使用for循环保存数据和性能问题。您是否可以包含代码,说明这意味着什么以及您遇到了什么类型的性能问题?但这样我需要循环在db中插入数据。我是wro吗ng?有没有办法在没有任何循环的情况下插入数据?您可以使用
.map
让realmUsers=serviceUsers.map{User(with servicestruct…)
但是这样我需要循环在db中插入数据。我错了吗?有没有办法在没有任何循环的情况下插入数据?你可以使用
.map
让realmUsers=serviceUsers.map{User(with servicestruct…)}
func save(users: [Users]){

        try! database.write {
            database.add(users)
        }
    }