数据持久化 属性列表代码

- (void)viewDidLoad {

    [super viewDidLoad];

    self.view.backgroundColor=[UIColor lightGrayColor];

//    创建字符串持久化按钮

    

    self.buttonString=[[UIButton alloc]initWithFrame:CGRectMake(100, 50, 200, 50)];

    [self.buttonString setTitle:@"字符串持久化" forState:UIControlStateNormal];

    self.buttonString.backgroundColor=[UIColor greenColor];

//    方法调用

    [self.buttonString addTarget:self action:@selector(dataPersistence) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:self.buttonString];

 

}

 

//数据持久化

-(void)dataPersistence

{

//    字符串持久化

 

    //获取Documents文件目录:常量NSDocumentDirectory表明我们正在查找Documents目录的路径。第二个常量NSUserDomainMask表明我们希望将搜索限制在应用的沙盒内,在OS X中表明我们希望该函数查看用户的主目录。

    NSArray *arrayStr=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    //表示将文件放入Documents文件的最后一个,即path作为最后一个对象

    NSString *path=[arrayStr lastObject];

    //@"ANewFile.plist"为新文件名,方法调用后 ,newPathStr 中存放了文件 ANewFile.plist 在 Documents 目录中的完整路径

    NSString *newPathStr=[path stringByAppendingPathComponent:@"ANewFile.plist"];

    NSLog(@"%@",newPathStr);

    //先创建一个NSString(字符串)类型的对象,然后调用实例方法 writeToFile:atomically 将参数写入文件中

    NSString *myFile=@"NewString";

    [myFile writeToFile:newPathStr atomically:YES encoding:NSUTF8StringEncoding error:nil];

//    说明:这里的atomically参数让该方法将数据写入辅助文件,而不是写入指定位置。成功写入该文件之后,辅助文件将被复制到第一个参数指定的位置。这是更安全的写入文件的方法,因为如果应用在保存期间崩溃,则现有文件(如果有)不会被破坏。尽管增加一点开销,但是多数情况下还是值得的。

 

 

//    说明:这里的myFile 是字符串,所以是字符串的持久化,他可以用Array,Dictionary,Data等可以被序列化的类型;可以被序列化的类型有:

1)NSArray、NSMutableArray

2)NSDictionary、NSMutableDictionary

3)NSData、NSMutableData

4)NSString、NSMutableString

5)NSNumber

6)NSDate

 

//获取几种沙盒目录的方法

     //获取Documents目录

       NSArray *arrayStr=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

       NSString *path=[arrayStr lastObject];

 

    //获取Library目录方法

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);

    NSString *libraryDirectory = paths[0];

 

    //获取tmp目录方法    

    NSString *tempPath = NSTemporaryDirectory();

    NSString *filename = [tempPath stringByAppendingPathComponent:@"theFile.txt"];

}

 

posted @ 2016-03-21 20:47  A唯爱永生_罗韩  阅读(153)  评论(0编辑  收藏  举报