NSUserDefaults 的用法(转)

来源:互联网 发布:js去掉div边框 编辑:程序博客网 时间:2024/06/06 04:21

转自: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中的数据:



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.

 

 


原创粉丝点击