Posted at

[Swift] 地味によく使う設定値の保存、取得をしてみる(NSUserDefaultsの利用)

More than 5 years have passed since last update.


何をしたか

設定値の保存、取り出し、削除を行います。NSUserDefaultsを使っています。

アプリを終了させても設定した値は活きています。

Configファイルへの書き込み、取り出しのイメージです。

スマートかどうかわかりませんが、画面間のデータ受け渡しに使えます。


ソース


init(){

// 設定値の保存 キーは"keyName"、値は"value"としました。
let config = NSUserDefaults.standardUserDefaults()
config.setObject("value",forKey:"keyName")
config.synchronize() // シンクロを入れないとうまく動作しないときがあります

// 設定値の取得
let result : AnyObject! = config.objectForKey("keyName")
println(result)
var test:String = result as NSString // AnyObjectからString型にダウンキャストするときは as NSString

// 存在しないキーはnilが返る
let result2 : AnyObject! = config.objectForKey("hoge")
println(result2)

// 設定値すべてを取得 ※ システムで用意された設定値も出力されます
var dictionary : NSDictionary = config.dictionaryRepresentation()
println(dictionary)

// 設定値"keyName"の削除
config.removeObjectForKey("keyName")

// ちゃんと"keyName"が削除されたことを確認
var dictionary2 : NSDictionary = config.dictionaryRepresentation()
println(dictionary2)

}


感想

Swiftになってもメソッド名が長いのは変わらないです。

個人的にはConfigクラスを作ってラッパーしちゃいたい。