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 っぽい 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 にリネームした)