Swift 3 の Notification
Swift 3 から Notification.Name
型が追加され、Notification の名前に生の文字列ではなく Notification.Name
型の値を指定できるようになった。
extension Notification.Name { static let userLoggedOut = Notification.Name("UserLoggedOut") } let n = Notification(name: .userLoggedOut, object: nil)
参考: Swift 3 以降の NotificationCenter の正しい使い方
Swift っぽい UserDefaults
UserDefaults のキーはまだ生の文字列を使っているけど、新しい Notification のようなインターフェイスで扱えたらうれしいなと思って薄いライブラリを書いた。
こんな感じで書ける。
import BetterUserDefaults extension UserDefaults.Key { static let someKey = UserDefaults.Key("someKey") } UserDefaults.standard.set(true, for: .someKey) UserDefaults.standard.bool(for: .someKey) // true
Notification.Name
と同じように UserDefaults.Key
という型でキー名を定義して使う。
ソースコード
1ファイルだけの簡単なコード。
UserDefaults+Key.swift
所感
このためにライブラリ入れるのもアレだし標準でこんな感じになればいいな。
あと書いてから気付いたけど全く同名のライブラリがあって同じようなことしてた。
(僕の方も最初 SwiftyUserDefaults にしてたけど BetterUserDefaults にリネームした)