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

   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文件:

[Objective-c]_[NSUserDefaults]_[基本使用]_第1张图片


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


你可能感兴趣的:([Objective-c]_[NSUserDefaults]_[基本使用])