Realmを使ってユーザーページを作りたい。
またその値を変更(上書き)できるようにしたいです。
UsersにプライマリーKeyを設定。
ローカルユーザー1人という設定でid==0の時に値を上書き保存しようとしてみました。
すると以下のエラーが出ます。
textFiledの値はボタン押下すると上書き自体はされます。
このエラーはどうすれば消えるのでしょうか。。
ViewController
1import UIKit 2import RealmSwift 3 4class ViewController: UIViewController,UITextFieldDelegate{ 5 6 @IBOutlet weak var label: UILabel! 7 @IBOutlet weak var textField: UITextField! 8 @IBOutlet weak var id: UILabel! 9 10 override func viewDidLoad() { 11 super.viewDidLoad() 12 13 let realm = try! Realm() 14 print(Realm.Configuration.defaultConfiguration.fileURL!) 15 let obj = realm.objects(Obj.self) 16 17 for objData in obj{ 18 label.text = objData.name 19 //id.text = objData.id 20 } 21 22 textField.delegate = self 23 } 24 25 func textFieldShouldReturn(_ textField: UITextField) -> Bool { 26 27 label.text = textField.text 28 textField.resignFirstResponder() 29 30 return true 31 } 32 33 @IBAction func saveButton(_ sender: UIButton) { 34 35 let obj = Obj() 36 obj.name = textField.text 37 label.text = obj.name 38 39 let realm = try! Realm() 40 41 42 DispatchQueue(label: "background").async { 43 autoreleasepool { 44 let realm = try! Realm() 45 let UserName = realm.objects(Obj.self).filter("id == 0").first 46 try! realm.write { 47 UserName!.name = self.label.text 48 } 49 } 50 } 51 52 } 53} 54 55 56
Users
1import Foundation 2import RealmSwift 3 4class Obj: Object{ 5 6 @objc dynamic var id = 0 7 @objc dynamic var name: String? 8 9 override static func primaryKey() -> String? { 10 return "id" 11 } 12} 13
エラー内容
UILabel.text must be used from main thread only
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/04 03:40