gpt4 book ai didi

ios - 快速更新 Realm 数据库中的值

转载 作者:搜寻专家 更新时间:2023-10-31 22:24:41 24 4
gpt4 key购买 nike

我正在尝试更新 Realm 数据库中的值。如果用户选择包含值的行,我希望能够更新该行的值。这是我的代码,但它没有更新,而是在数据库中创建了另一个值

func updateTodoList(todoList: TodoListModel, name: String, description: String, createdDate: Date, remiderDate: Date, photo: Data, isCompleted: Bool) -> Void {

try! database.write {

if name != "" {
todoList.name = name
} else {
todoList.name = "No extra information"
}

todoList.desc = description
todoList.createdDate = createdDate
todoList.remiderDate = remiderDate
todoList.photo = photo
todoList.isCompleted = false

}

}

我确实选择了行

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

let todoList = todoItems?[indexPath.row]

let storyBoard: UIStoryboard = UIStoryboard(name: "AddTodoListSB", bundle: nil)
let newViewController = storyBoard.instantiateViewController(withIdentifier: Constants.ADD_TODO_SB) as! AddTodoListVC
newViewController.loadViewIfNeeded()

let min = Date()
let max = Date().addingTimeInterval(60 * 60 * 60 * 60)
guard let itemPhoto = UIImagePNGRepresentation(newViewController.imageView.image!) else {return}
newViewController.picker.minimumDate = min
newViewController.picker.maximumDate = max
// newViewController.showDateTimePicker(sender: <#T##AnyObject#>)
newViewController.picker.completionHandler = { date in
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
self.title = formatter.string(from: date)

let reminder = formatter.string(from: date)

TodoListFunctions.instance.updateTodoList(todoList: todoList!, name: newViewController.titleTxtField.text!, description: newViewController.moreInfoTxtView.text!, createdDate: (todoList?.createdDate)!, remiderDate: formatter.date(from: reminder)!, photo: itemPhoto, isCompleted: false)


}

tableView.reloadData()
self.present(newViewController, animated: true, completion: nil)

}

//Todolist模型

class TodoListModel: Object {

@objc dynamic var id = UUID().uuidString
@objc dynamic var name: String = ""
@objc dynamic var desc: String = "No Description"
@objc dynamic var photo: Data? = nil
@objc dynamic var createdDate: Date?
@objc dynamic var remiderDate: Date?
@objc dynamic var isCompleted = false


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

let parentCategory = LinkingObjects(fromType: CategoryModel.self, property: "items")

}

将根据要求提供更多代码

最佳答案

要更新一个对象,它必须有一个主键,并且在你编辑它之后使用

 // if it doesn't exist it'll be added
database.add(editedObjc, update: true)

//

// create object 1  , note: r = database

let lista = TaskList()

lista.pid = 1

lista.name = "Whole List"

// create object 2

let lista2 = TaskList()

lista2.pid = 2

lista2.name = "Whole List 2"

// add to database by write

r.add([lista,lista2])

let stored = r.objects(TaskList.self)

print("before edit" , stored)

// edit name of object 2

lista2.name = "qqwwqwqwqwqwqwqwq"

// update the object after changing it's name

r.add(lista2, update: true)

let stored2 = r.objects(TaskList.self)

print("after edit" , stored2)

关于ios - 快速更新 Realm 数据库中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52296851/

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