ios 几种数据存储方式

来源:互联网 发布:光猫端口被关闭 编辑:程序博客网 时间:2024/05/22 02:05
<span style="font-size:18px;">#import "ViewController.h"#import "Person.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {  [super viewDidLoad];}/** *  沙盒 */- (void)test{  // 获取Caches路径  NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];  //stringByAppendingPathComponent不需要添加 /  NSString *filePath = [docPath stringByAppendingPathComponent:@"Data"];  NSFileManager *manager = [NSFileManager defaultManager];  if (![manager fileExistsAtPath:filePath]) {    // 创建文件夹(此处是Data 文件夹)    [manager createDirectoryAtPath:filePath       withIntermediateDirectories:YES                        attributes:nil                             error:nil];  }    // 在Data文件夹下创建test.plist文件  NSString *dataPath = [filePath stringByAppendingString:@"/test.plist"];  NSArray *arr = @[@"1",@"2"];  [arr writeToFile:dataPath atomically:YES];  NSLog(@"%@",dataPath);    // 遍历子文件//  NSArray *files = [manager subpathsOfDirectoryAtPath:filePath error:nil];//  NSLog(@"%@",files);  //  if ([manager fileExistsAtPath:filePath]) {//    [manager removeItemAtPath:filePath error:nil]; // 删除该目录下的文件夹//  } // 一般在下载图片或者文件时用的比较多}/** *  NSUserDefaults 一种轻量级的永久存储方式    NSUserDefaults支持的数据类型:NSNumber(NSInter,float,double),NSString,NSDate,NSArray,NSDictionary,BOOL    对于相同的key赋值,相当于一次覆盖,必须保证每一个key的唯一性       NSUserDefaults存储的对象全是不可变的(这一点非常关键,否则程序会崩溃的) */- (void)test1{  // 这种方式的存储路径在 Library/Preferences就是偏好设置目录下  NSUserDefaults *user = [NSUserDefaults standardUserDefaults];  [user setObject:@"likelin" forKey:@"name"];    // 如果存储可变对象怎么办?我们可以先将可变变成不可变对象  NSMutableArray *mutableArr = [NSMutableArray arrayWithObjects:@"jone",@"andy",@"blus", nil];  NSArray *array = [mutableArr copy];  [user setObject:array forKey:@"names"];    // 常见用处是一般在app 上登陆界面的记住密码,和自动登陆时用的比较多}/** *  归档和反归档 */- (void)test2{  NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];  NSString *filePath = [path stringByAppendingPathComponent:@"person.data"];  Person *p = [[Person alloc] init];  p.name = @"likelin";  p.age = 26;  p.height = 175;  NSLog(@"%@",filePath);  // 将person对象存储到person.data文件中  [NSKeyedArchiver archiveRootObject:p toFile:filePath];  // 从filePath中取出person对象存储的数据  Person *per = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];  NSLog(@"%@-----%d-----%f",per.name,per.age,per.height);}@end</span>


0 0
原创粉丝点击