iOS开发-文件存储方法汇总

-方法一:NSUserDefaults

用途

一般将轻量级的用户偏好存储在这里,比如用户名,游戏最高得分等。

存储路径

存储路径为dataContainer下的Library/Perferance

文件格式

.plist

使用方法

[[NSUserDefaults standardUserDefaults] setBool:isRemember forKey:@"remember"]; // 存

_rememberSwitch.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"remember"]; // 取

可以存储的内容格式有:

NSString
NSData
NSDate
NSArray
NSDictionary
NSNumber (可以将bool,integer,float,double封装成NSNumber)

-方法二:将数组,字典存储到指定路径,并存储为.plist文件

用途

将自定义的数组,字典存储为.plist文件

存储路径

指定的任意路径

文件格式

.plist

使用方法

// 存
NSArray *array = @[@"amao", @"agou"];
NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"array.plist"];
[array writeToFile:path atomically:YES];

// 取
NSArray *array = [NSArray arrayWithContentsOfFile:path atomically:YES];

-方法三:对象归档

用途

将自定义的Model类转换成特定的数据流,存储到本地(自定义对象以及对象的所有属性需要遵循NSCoding)

存储路径

指定的任意路径

文件格式

我通常会以.archive作为后缀

使用方法

自定义对象类需要实现以下两个方法:

- encodeWithCoder: // 对象转换成特定数据流

- initWithCoder:   // 将文件转换成特定的对象

保存方法:

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:保存model的数组];
[data writeToFile:filePath atomically:YES];

取方法:

id object = [NSKeyedUnarchiver unarchiverObjectWithFile:filePath];

if ([object isKindOfClass:[NSArray class]]) {
    [model数组 addObjectsFromArray:object];
}

上面提到的三种方法的缺点是,无论多小的改动,都是整存整取。

方法四:SQLite

方法五:Core Data

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,699评论 25 708
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,219评论 30 472
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,628评论 9 467
  • 光阴如流水,一天天从指缝中流走,而今已是不惑之年,光阴带走了我的青春,埋葬了我的梦想。行走在红尘中,其心如初,可...
    清水无香之菲菲阅读 226评论 1 0