初心者です。
Xcode内にRealmSwiftを入れました。
あるViewControllerで
swift
1//Realmのインスタンス取得 2 do { 3 let realm = try Realm() 4 let person = [realmDataSet(value: ["userID": client.restext])] 5 try! realm.write { 6 realm.add(person) 7 print("OK", person) 8 } 9 } catch{ 10 print("error") 11 }
としてデータをRealmにきちんと入れました。ここまではできています。
ここで、違うViewControllerにおいてLabelを設置し、Label.textにRealmに入れたuserIDを表示させたいです。そこで、このようなコードを書きました。
Swift
1import UIKit 2import RealmSwift 3class InformationViewController: UIViewController { 4 @IBOutlet weak var userID: UILabel! 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 // Do any additional setup after loading the view. 8 // Realmのインスタンスを取得 9 let realm = try! Realm() 10 // Realmに保存されてるDog型のオブジェクトを全て取得 11 let vals = realm.objects(realmDataSet.self) 12 // ためしに名前を表示 13 for val in vals { 14 print("userID: (val.userID)") 15 if val.userID != nil && val.userID != "" { 16 userID.text = "userID: (val.userID)" 17 } 18 } 19 } 20} 21
コードにエラーはありませんが、Runをさせると AppDelegate で Thread 1: signal SIGABRT というエラーが出て来てしまいました。
これはどういうことなのでしょうか。どこをどう直せば良いのでしょうか。
ちなみにRealmのclassは別のViewControllerに書きました。このようになっています。
Swift
1import Foundation 2import RealmSwift 3 4class realmDataSet: Object { 5 6 @objc dynamic var userID = "" 7 @objc dynamic var coupon = "" 8 @objc dynamic var result = "" 9 @objc dynamic var flag1 = false 10 @objc dynamic var flag2 = false 11 @objc dynamic var flag3 = false 12 @objc dynamic var temp1 = "" 13 @objc dynamic var temp2 = "" 14 @objc dynamic var temp3 = "" 15 16} 17struct RealmModel { 18 19 struct realm{ 20 21 static var realmTry = try!Realm() 22 static var realmsset = realmDataSet() 23 static var usersSet = RealmModel.realm.realmTry.objects(realmDataSet.self) 24 25 } 26} 27
ご教授お願いします。
回答1件
あなたの回答
tips
プレビュー