UserDefaults を使用して、Swift で文字列、ブール値、およびその他のデータを保存/取得するにはどうすればよいですか?
14 に答える
ref: NSUserdefault objectTypes
スイフト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 が他のすべての有効な場所で値を検索した後、登録済みのデフォルトを検索し、それらを「フォールバック」値として役立つことを意味します。登録されたデフォルトは、アプリケーションの実行間で保存されることはなく、それらを登録したアプリケーションにのみ表示されます。
Defaults Configuration Files のデフォルト値が自動的に登録されます。
たとえば、起動からアプリを検出し、起動を保存するための構造体を作成します
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 スイート名
別の 1 つのプロパティスイート名、主に アプリ グループの概念に使用されます。ここから取ったシナリオの例:
ユースケースは、Android の SharedPreferences のような識別子で UserDefaults を分離したい場合です (別のビジネス ロジックでは、Userdefaults を個別にグループ化する必要がある場合があります)。たとえば、アプリのユーザーがログアウト ボタンをクリックすると、デバイスの場所ではなく、アカウントに関連するデフォルトをクリアしたいと思います。
let user = UserDefaults(suiteName:"User")
userDefaults synchronize の使用、詳細情報が重複した回答に追加されました。
スウィフト 4 :
店
UserDefaults.standard.set(object/value, forKey: "key_name")
取得する
var returnValue: [datatype]? = UserDefaults.standard.object(forKey: "key_name") as? [datatype]
削除する
UserDefaults.standard.removeObject(forKey:"key_name")
//Save
NSUserDefaults.standardUserDefaults().setObject("yourString", forKey: "YourStringKey")
//retrive
let yourStr : AnyObject? = NSUserDefaults.standardUserDefaults().objectForKey("YourStringKey")