如何保存字符串到NSUserDefaults?
当前回答
斯威夫特更新了:
let userID = "BOB"
宣布userDefaults:
let defaults = UserDefaults.standard
defaults.setValue(userID, forKey: "userID")
并得到它:
let userID = defaults.object(forKey: "userID")
其他回答
不要忘记这句话,否则它可能并不总是有效:
[standardUserDefaults synchronize];
一个好的做法是使用一个常量作为键,以避免在不存储和读取相同键的情况下出现错误
NSString* const TIME_STAMPS_KEY = @"TIME_STAMPS_KEY";
Swift 3更新
func setObject(value:AnyObject ,key:String)
{
let pref = UserDefaults.standard
pref.set(value, forKey: key)
pref.synchronize()
}
func getObject(key:String) -> AnyObject
{
let pref = UserDefaults.standard
return pref.object(forKey: key)! as AnyObject
}
就像这样:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// saving an NSString
[prefs setObject:@"TextToSave" forKey:@"keyToLookupString"];
然后检索:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// getting an NSString
NSString *myString = [prefs stringForKey:@"keyToLookupString"];
你应该看看苹果的NSUserDefaults类参考,也可以看看这个教程:iPhone编程教程-使用NSUserDefaults保存/检索数据
对于Swift,我创建了两个函数,它们将从首选项中保存和检索值。
这对你很有帮助。
//保存对象
static func setObject(value:AnyObject ,key:String)
{
let pref = NSUserDefaults.standardUserDefaults()
pref.setObject(value, forKey: key)
pref.synchronize()
}
static func getObject(key:String) -> AnyObject
{
let pref = NSUserDefaults.standardUserDefaults()
return pref.objectForKey(key)!
}
推荐文章
- 如何删除默认的导航栏空间在SwiftUI导航视图
- 如何在iOS中使用Swift编程segue
- Swift -整数转换为小时/分钟/秒
- 如何舍入一个双到最近的Int在迅速?
- 扁平化数组的数组在Swift
- Swift:声明一个空字典
- 为什么ARC仍然需要@autoreleasepool ?
- 在成功提交我的应用程序后,“太多符号文件”
- 从数组中随机选择一个元素
- 首先添加一个UIView,甚至是导航栏
- 我如何改变UIButton标题颜色?
- 如何从UIImage (Cocoa Touch)或CGImage (Core Graphics)获取像素数据?
- 在Swift中如何调用GCD主线程上的参数方法?
- NSLayoutConstraints是可动画的吗?
- iOS -构建失败,CocoaPods无法找到头文件