gpt4 book ai didi

swift - 使用主键更新对象不起作用

转载 作者:搜寻专家 更新时间:2023-11-01 05:36:34 24 4
gpt4 key购买 nike

这是我用主键用户名创建的对象和我尝试运行添加对象代码时的错误。

class Login_item: Object {
dynamic var username = String()
dynamic var password = String()

override static func primaryKey() -> String? {
return "username"
}

这是添加新对象和更新对象的代码。

func save_login_info() {
let new_login_entry = Login_item()

new_login_entry.username = Username.text!
new_login_entry.password = Password.text!

let realm = try! Realm()
try! realm.write {
realm.add(new_login_entry)
print("Login info save as: \(Realm.Configuration.defaultConfiguration.fileURL!)")
}

try! realm.write {
realm.add(new_login_entry, update: true)
}
}

执行代码时出现错误。

fatal error: 'try!' expression unexpectedly raised an error: Error Domain=io.realm Code=10 "Migration is required due to the following errors: - Property 'username' has been made a primary key." UserInfo={NSLocalizedDescription=Migration is required due to the following errors: - Property 'username' has been made a primary key., Error Code=10}: file /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-703.0.18.8/src/swift/stdlib/public/core/ErrorType.swift, line 54

最佳答案

是的,您需要在更改模型时添加迁移指令,这就是错误消息所描述的内容。

let config = Realm.Configuration(schemaVersion: 1, migrationBlock: { migration, oldSchemaVersion in
if oldSchemaVersion < 1 {

}
})

代码中的 1 代表当前版本,每次对代码进行任何更改都需要增加版本号并对数据进行任何更改。

您可以阅读更多相关信息 here

关于swift - 使用主键更新对象不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37945025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com