野球のデータベースにRealmSwiftを使っています。
打者→試合→打席→打席の内容と、4階層のリレーションを組んであります。
その中で、既に登録済みの試合の打席の次の打席ならばRealmに追加登録。
まだ入力していなければ新規登録。
という条件分岐のコードで、シミュレーターで新たに走らせるとタイトルの通り、
「fatal error: unexpectedly found nil while unwrapping an Optional value」
が発生します。
Realmに一件でもデータが入っていればクラッシュはしません。
nilになっているから。ということだとは思いますが、どうやって調べたら良いでしょうか?
念のため、クラッシュ時のスクショも貼ります。
お解りになる方がいらっしゃればご教授下さい。
お願いします。
let games = realm.objects(Game).filter("batDate == %@ && gamesCount == %@", textField7.text!, textField8.text!)
print(games)
for game in games {
//参照して同じ月日の同じ試合があれば打席を後ろに追加する
if (game.batDate == textField7.text!) && (game.gamesCount == textField8.text!) {
let realm = try! Realm()
try! realm.write {
//試合
let game = Game()
game.batDate = textField7.text!
game.gamesCount = textField8.text!
//打者→試合への関連付け
let batter = realm.objects(Batter).last!
batter.games.append(game)
}
//同じ月日同じ試合がなければ新規の試合を登録
} else {
let realm = try! Realm()
try! realm.write {
//試合
let game = Game()
game.batDate = self.textField7.text!
game.gamesCount = self.textField8.text!
//打者→試合への関連付け
let batter = realm.objects(Batter).last!
batter.games.append(game)
//Realmに書き込み
realm.add(game)
}
}
}