天天看点

NSUserDefaults 的用法(转)

​​http://www.istar.name/blog/use-nsuserdefaults​​

上边的原网站,可以国内的一部分人访问不了,好像是被墙了,我要番樯才能看到。

NSUserDefaults可以存取一些短小的信息。

NSUserDefaults standardUserDefaults用来记录一下永久保留的数据非常方便,不需要读写文件,而是保留到一个NSDictionary字典里,由系统 保存到文件里,系统会保存到该应用下的/Library/Preferences/.plist文件中,并不是所有的东西都能往里放的,只支持:NSString, NSNumber, NSDate, NSArray, NSDictionary,详细方法可以查看类文件.

需要注意的是如果程序意外退出,NSUserDefaults standardUserDefaults数据不会被系统写入到该文件,不过可以使用[[NSUserDefaults standardUserDefaults] synchronize]命令直接同步到文件里,来避免数据的丢失.

用法非常的简单,比如存入数据到NSUserDefaults

//Bool
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setBool:YES forKey:@
"switchValue"
];
 
//String
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:@
"star"
forKey:@
"inputValue"
];      
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
BOOL
sw = [userDefaults boolForKey:@
"switchValue"
];
 
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSString *str = [userDefaults stringForKey:@
"inputValue"
];这是另一个相关的东西:
​​NSUserDefaults用法​​
NSString *sessionId = @"123";
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:sessionId forKey:@"sessionID"];
    [defaults synchronize];
    
    NSString *value;  
    value = [defaults objectForKey:@"sessionID"];  //获取值


Saving
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// saving an NSString
[prefs setObject:@"TextToSave" forKey:@"keyToLookupString"];// saving an NSInteger
[prefs setInteger:42 forKey:@"integerKey"];// saving a Double
[prefs setDouble:3.1415 forKey:@"doubleKey"];// saving a Float
[prefs setFloat:1.2345678 forKey:@"floatKey"];// This is suggested to synch prefs, but is not needed (I didn't put it in my tut)
[prefs synchronize]; //同步,写到磁盘中;Retrieving
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// getting an NSString
NSString *myString = [prefs stringForKey:@"keyToLookupString"];// getting an NSInteger
NSInteger myInt = [prefs integerForKey:@"integerKey"];// getting an Float
float myFloat = [prefs floatForKey:@"floatKey"];
NSUserDefaults只支持: NSString, NSNumber, NSDate, NSArray, NSDictionary.