Swift
1 2class myData: Object { 3 @objc dynamic var data1:Int = 0 4 @objc dynamic var data2:String = "" 5}
Swift
1 @IBOutlet weak var label: UILabel! 2 var count = 0 3 4 override func viewDidLoad() { 5 super.viewDidLoad() 6 7 let realm = try! Realm() 8 let abc = realm.objects(myData.self) 9 label.text = abc.last?.data2 10 count = abc.last!.data1 11 12 } 13 //ボタン 14 @IBAction func plus(_ sender: Any) { 15 16 count = count + 1 17 label.text = String(count) 18 19 let data = myData() 20 21 data.data2 = label.text! 22 data.data1 = count 23 24 let realm = try! Realm() 25 try! realm.write { 26 realm.add(data) 27 } 28 29 }
Realmを使い、ボタンを押すとカウントが1ずつ進み、それをラベルに表示するアプリを作成しています。
ボタンを押す度に、ラベルに表示された数字を保存するのと同時に、 count の値も同時進行で保存する形にしています(data1,data2の2つを作成)。
アプリ起動時にviewDidLoadで
label.text = abc.last?.data2
count = abc.last!.data1
を呼び、前回の終了時のラベルの状態を引継ぐのと、
countの値が新たに0から始まるのを防ぎ、前回終了時のcountの値から開始できるようにしました。
この場合、アプリインストール後のの初回起動時のみ
count = abc.last!.data1
において、
Fatal error: Unexpectedly found nil while unwrapping an Optional value
でエラーが出てクラッシュしてしまいます。
どのようにすれば解決できるかご教授いただけないでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/14 09:23