LoginSignup
3
0

More than 5 years have passed since last update.

強制アンラップしても落ちないmapオペレータを作った(けど…)

Posted at

Fortifyを使ってcompactMap的なのを作ったら、便利なのではと思って書いてみた。

SafeMap

使う前

let paths = ["https://image.com", "", "あああ", "http://image.jp/"]
let medias = paths.compactMap({ (path) -> Media? in
  guard let url = URL(string: $0) else { return nil }
  return Media(url: url)
})
print(medias)

使うと

let paths = ["https://image.com", "", "あああ", "http://image.jp/"]
let medias = paths.safeMap({ Media(url: URL(string: $0)!) })
print(medias)

こんな感じでsafeMapオペレータ内であれば、強制アンラップに失敗すると自動でmapの対象から外してくれる。

問題点

ということで、debug executableをオフにしないと実行時にちゃんとデバッガーが拾ってしまうのでした…。
デバッガー殺しながら開発するわけにも行かないし、あんまり実用的じゃないな :cry:

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0