強制アンラップしても落ちないmapオペレータを作った(けど…)
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)
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をオフにしないと実行時にちゃんとデバッガーが拾ってしまうのでした…。
デバッガー殺しながら開発するわけにも行かないし、あんまり実用的じゃないな
Author And Source
この問題について(強制アンラップしても落ちないmapオペレータを作った(けど…)), 我々は、より多くの情報をここで見つけました https://qiita.com/noppefoxwolf/items/d833d11328dd3c128fdb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .