Preference

Preference

NSUserDefaults:用来保存应用程序设置和属性、用户保存的数据。用户再次打开程序或开机后这些数据仍然存在。NSUserDefaults可以存储的数据类型包括:NSData、NSString、NSNumber、NSDate、NSArray、NSDictionary。如果要存储其他类型,则需要转换为前面的类型,才能用NSUserDefaults存储。

 

1.使用方法

//1.获得NSUserDefaults文件
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

//2.向文件中写入内容
[userDefaults setObject:@"AAA" forKey:@"a"];
[userDefaults setBool:YES forKey:@"sex"];
[userDefaults setInteger:21 forKey:@"age"];
//2.1立即同步
[userDefaults synchronize];

//3.读取文件
NSString *name = [userDefaults objectForKey:@"a"];
BOOL sex = [userDefaults boolForKey:@"sex"];
NSInteger age = [userDefaults integerForKey:@"age"];
NSLog(@"%@, %d, %ld", name, sex, age);

 

2.注意

  • 偏好设置是专门用来保存应用程序的配置信息的,一般不要在偏好设置中保存其他数据。
  • 如果没有调用synchronize方法,系统会根据I/O情况不定时刻地保存到文件中。所以如果需要立即写入文件的就必须调用synchronize方法。
  • 偏好设置会将所有数据保存到同一个文件中。即preference目录下的一个以此应用包名来命名的plist文件。

 

保存数据:

-(void)saveSetting {
    NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
    //save string
    NSString* saveString = @"simon";
    [defaults setObject:saveString forKey:@"name"];

    //save integer
     NSInteger saveInt = 100;
    [defaults setInteger: saveInt forKey:@"count"];

    //save bool
    BOOL saveBool = YES;
    [defaults setBool: saveBool forKey:@"flag"];

    //save image
    UIImage *image=[[UIImage alloc]initWithContentsOfFile:@"photo.jpg"];
    NSData *imageData = UIImageJPEGRepresentation(image, 100);//UIImage对象转换成NSData
    [defaults setObject:imageData forKey:@"image"];

    //用synchronize方法把数据持久化到standardUserDefaults数据库
    [defaults synchronize];
}

 

读取数据:

-(void)getSetting {
NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];

//根据键值取出name
NSString *name = [defaults objectForKey:@"name"];

NSInteger count = [defaults objectForKey:@"count"];
BOOL bflag = [defaults objectForKey:@"flag"];

NSData *imageData = [defaults dataForKey:@"image"];
UIImage *Image = [UIImage imageWithData:imageData];//NSData转换为UIImage
}

 

 

NSUserDefaults数据存储的位置

NSUserDefaults用于保存iPhone程序的数据,使用非常方便。

那么这些数据最终存放在什么地方呢?存放于一个plist文件中。这个文件位于

<UUID for your App>\Library\Preferences\<your App's bundle ID>.plist

 

posted on 2015-07-22 16:38  pTrack  阅读(318)  评论(0)    收藏  举报