[Objective-c]_[NSUserDefaults]_[基本使用]

来源:互联网 发布:西安白队长 知乎 编辑:程序博客网 时间:2024/04/28 19:12

   NSUserDefaults是一个轻量级本地数据存储,如果只是保存少量的数据,像用户名、密码这些建议用NSUserDefaults。

   NSUserDefault支持的数据格式:NSNumber(NSInteger、Float、Double)、NSString、NSDate、NSArray、NSDictionary,BOOL类型。不能加入一个自定义类对象。NSUserDefault相当于一个迷你的数据库,执行后.plist文件会保存到/Users/mac-mini7/Library/Preferences/test_NSUserDefaults.plist

#import <Foundation/Foundation.h>#import "ObjectBase.h"int main(int argc, const char * argv[]){    @autoreleasepool {                // insert code here...                        //初始化        NSUserDefaults *userDefaults11 = [NSUserDefaults standardUserDefaults];                //初始化        NSDate *date = [NSDate date];        NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];                       NSArray *array = [NSArray arrayWithObjects:@"hello",@"world",nil];        NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:                                    @"abc",@"111",                                    @"efg",@"222",                                    nil                                    ];         //添加数据        [userDefaults setInteger:1 forKey:@"integer"];        [userDefaults setFloat:2.0 forKey:@"float"];        [userDefaults setDouble:3.0 forKey:@"double"];        [userDefaults setBool:YES forKey:@"bool"];        [userDefaults setObject:@"string" forKey:@"string"];        [userDefaults setObject:date forKey:@"date"];        [userDefaults setObject:array forKey:@"array"];        [userDefaults setObject:dictionary forKey:@"dictionary"];        [userDefaults removeObjectForKey:@"aaaa"];        [userDefaults removeObjectForKey:@"111"];                //存储到本地磁盘        [userDefaults synchronize];                //读数据        NSInteger i = [userDefaults11 integerForKey:@"integer"];        float f = [userDefaults11 floatForKey:@"float"];        double d = [userDefaults11 doubleForKey:@"double"];        BOOL b = [userDefaults11 boolForKey:@"bool"];        NSString *s = [userDefaults11 objectForKey:@"string"];        NSArray *array2 = [userDefaults11 objectForKey:@"array"];        NSDictionary *dictionary2 = [userDefaults11 objectForKey:@"dictionary"];        NSDate *date2 = [userDefaults11 objectForKey:@"date"];                NSLog(@"%@ %ld %f %f %d %@",date2,i,f,d,b,s);        for (NSString *s in array2) {            NSLog(@"array:%@",s);        }        NSString *s1 = [dictionary2 objectForKey:@"111"];        NSString *s2 = [dictionary2 objectForKey:@"222"];        NSLog(@"s1:%@ s2:%@",s1,s2);                   }    return 0;}

输出结果:

2015-10-10 15:22:33.496 test_NSUserDefaults[1387:303] 2015-10-10 07:22:30 +0000 1 2.000000 3.000000 1 string

2015-10-10 15:22:33.496 test_NSUserDefaults[1387:303] array:hello

2015-10-10 15:22:33.497 test_NSUserDefaults[1387:303] array:world

2015-10-10 15:22:33.497 test_NSUserDefaults[1387:303] s1:abc s2:efg



.plis文件:



总结:相对于配置xml文件来保存少了解析xml的过程,相对简便,若是要保存较少数据可以用NSUserDeauft,缺点是不能保存自定义类对象,只能保存有限的数据类型。


0 0
原创粉丝点击