[解決済み] Swift で UserDefaults を使用するにはどうすればよいですか?
質問
Swiftで文字列やブーリアンなどのデータを保存/取得するためにUserDefaultsを使用するにはどうすればよいですか?
どのように解決するのですか?
を参照してください。 NSUserdefault objectTypes
Swift 3 以上
店舗
UserDefaults.standard.set(true, forKey: "Key") //Bool
UserDefaults.standard.set(1, forKey: "Key") //Integer
UserDefaults.standard.set("TEST", forKey: "Key") //setObject
検索
UserDefaults.standard.bool(forKey: "Key")
UserDefaults.standard.integer(forKey: "Key")
UserDefaults.standard.string(forKey: "Key")
削除
UserDefaults.standard.removeObject(forKey: "Key")
すべてのキーを削除する
if let appDomain = Bundle.main.bundleIdentifier {
UserDefaults.standard.removePersistentDomain(forName: appDomain)
}
Swift 2以下
店舗
NSUserDefaults.standardUserDefaults().setObject(newValue, forKey: "yourkey")
NSUserDefaults.standardUserDefaults().synchronize()
検索
var returnValue: [NSString]? = NSUserDefaults.standardUserDefaults().objectForKey("yourkey") as? [NSString]
削除
NSUserDefaults.standardUserDefaults().removeObjectForKey("yourkey")
登録
registerDefaults: registrationDictionary をすべての検索リストの最後のアイテムに追加します。これは、NSUserDefaults が他のすべての有効な場所で値を探した後、登録されたデフォルトを探し、quot; fallback" 値として使用できるようにすることを意味します。登録されたデフォルトは、アプリケーションの実行中に保存されることはなく、それを登録したアプリケーションだけが見ることができます。
デフォルト設定ファイルからのデフォルト値は自動的に登録されます。
例えば、起動時にアプリを検出し、保存起動のための構造体を作成します。
struct DetectLaunch {
static let keyforLaunch = "validateFirstlunch"
static var isFirst: Bool {
get {
return UserDefaults.standard.bool(forKey: keyforLaunch)
}
set {
UserDefaults.standard.set(newValue, forKey: keyforLaunch)
}
}
}
アプリ起動時にデフォルト値を登録する。
UserDefaults.standard.register(defaults: [
DetectLaunch.isFirst: true
])
アプリ終了時に値を削除します。
func applicationWillTerminate(_ application: UIApplication) {
DetectLaunch.isFirst = false
}
という条件を確認します。
if DetectLaunch.isFirst {
// app launched from first
}
UserDefaultsスイート名
もう一つのプロパティ スイート名 主に アプリグループのコンセプト シナリオの例 こちら :
AndroidのSharedPreferencesのように、識別子でUserDefaults(異なるビジネスロジックでは、UserDefaultsを別々にグループ化する必要があります)を分けたいという使用例です。例えば、私のアプリのユーザーがログアウトボタンをクリックすると、アカウント関連のデフォルトはクリアされますが、デバイスの位置情報はクリアされません。
let user = UserDefaults(suiteName:"User")
userDefaults synchronizeの使用 詳細については、重複する回答に追記しました。
関連
-
[エラー処理】iOSのエラー、アーキテクチャx86_64の未定義シンボルについて
-
[解決済み] 使用しているSwiftのバージョンを確認するにはどうすればよいですか?
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] Swiftで#pragmaマーク?
-
[解決済み] Swift Betaのパフォーマンス:配列のソート
-
[解決済み] 文字列の長さを取得する
-
[解決済み] iPhone 5の画面解像度に対応したアプリを開発・移行するには?
-
[解決済み] Swiftを使用してアプリのバージョンとビルド番号を取得するにはどうすればよいですか?
-
[解決済み] SwiftでURLから画像を読み込む/ダウンロードする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み] iOSのステータスバーの文字色を変更する方法
-
[解決済み] Xcode 7のエラーです。"Missing iOS Distribution signing identity for ..." (iOS配布用署名IDがありません)
-
[解決済み] Xcode 6のバグ:Interface Builderファイル内の不明なクラス
-
[解決済み] UINavigationBarの1px下の行を非表示にする方法
-
[解決済み] Swift 3, 4, 5 で dispatch_after GCD を書くにはどうしたらいいですか?
-
[解決済み] SwiftでiOSキーボードを任意の場所でタッチして閉じる
-
[解決済み] iOSとWatchKitで画像のtintColorを変更する方法
-
[解決済み] UIViewの角丸とドロップシャドウ?
-
[解決済み] iOS 11、Apple TV 4Kなどを搭載したXcode 9でワイヤレスデバッグを行う方法とは?