| categories:swift develop

イフレット

fatal error: unexpectedly found nil while unwrapping an Optional value

nil値が戻ってくる可能性のある時の処理方法。

tableCellに値を渡す時を例に、

# if let xx  = yy { } else { }

if let lock  = event.isLocked as? Bool {
    cell.isLocked = lock
} else {
    cell.isLocked = false
}

で新しく、guard let なんてのが出てきて、こんな風に書き換える事ができ、(else以降の役割がよくわからない。)

# guard let xx = y else {]

guard let lock  = event.isLocked as? Bool else { return }
cell.isLocked = lock

そしてしかも、簡略した(?:ニル、?:なの)xx = yy ?? もある。

# xx = yy ??
cell.isLocked = event.isLocked as? Bool ?? false

基本的に同じものなのだろうか?一番下のものがなんとなく分かりやすい気も個人的にはするのだが、あまり推奨はされていないようにも思われる。。。場合によって使い分けるのが良いのか。。

comments powered by Disqus