私のアプリケーションでは、次のコードを使用してキーを保存しています。
func saveKey(){
var xmineSpillere = mineSpillere
var defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(xmineSpillere, forKey: "YourKey")
}
しかし、どうすればキーが存在するかどうかを確認できますか?次のようなコードが必要です。
if key("YourKey") exists {
println("key exists")
}
else {
println("does not exist")
}
Swiftでこのようなことをするにはどうすればよいですか?
まず、NSUserDefaults
に保存するたびに、 synchronize()
メソッドを呼び出して、永続ドメインへの変更をディスクに書き込み、変更されていないすべての永続を更新する必要があります。ディスク上にあるものへのドメイン。
func saveKey(){
var xmineSpillere = mineSpillere
var defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(xmineSpillere, forKey: "YourKey")
defaults.synchronize()
}
synchronize
メソッドは定期的に自動的に呼び出されます。このメソッドは、自動同期を待つことができない場合(たとえば、アプリケーションが終了しようとしている場合)、またはユーザーのデフォルトを更新する場合にのみ使用してください。変更を加えていなくても、はディスク上にあります。
次に、次の方法で任意の値に到達できます。
if let key = NSUserDefaults.standardUserDefaults().objectForKey("YourKey"){
// exist
}
else {
// not exist
}
これがお役に立てば幸いです。
自分自身を見つけた、コード:
if (NSUserDefaults.standardUserDefaults().objectForKey("YourKey") != nil) {
println("key exist")
}
この拡張機能をUserDefaults
に追加すると、次のことが役立ちます。
extension UserDefaults {
func contains(key: String) -> Bool {
return UserDefaults.standard.object(forKey: key) != nil
}
}
キーが存在するかどうかは、次の方法で確認できます。
if UserDefaults.contains(key: "YourKey") {
print("Key exist")
} else {
print("Does not exist")
}
Swift 3 +
if let key = UserDefaults.standard.object(forKey: "Key"){
// exist
} else {
// not exist
}