(1)、定位Document 目录
(2)、定位Library 目录
(3)、定位Caches 目录,Caches 目录位于Library目录下
使用NSSearchPathForDirectoriesInDomains只能定位Caches、Library、Documents目录, tmp目录,不能按照此方法获得,此时可以采用NSHomeDirectory定位到应用程序主目录,也就是Document 的上一层目录:
NSString *temp = NSTemporaryDirectory()
获取沙盒根目录:NSHomeDirectory()
使用NSHomeDirectory()可以获取到沙盒的根目录,也就是Document的上一层。
利用NSHomeDirectory()我们可以获取沙盒中的任意文件的路径。
例如:获取tmp的路径如下所示:
如果创建文件夹,并创建子目录,如下:
关于目录/文件的其他 *** 作:
iOS本地数据保存有多种方式,归纳如下:
本章不仅是学习多种数据存储方式,也可学习到其他知识点,下面就让我们详细来看:
具体方法为:
第一步:获得文件即将保存的路径,并生成在该路径下的文件:
第二步:往文件中写入/读取:
方法一:
方法二:
方法三:
2.NSUserDefaults:是一个单例对象,在整个应用程序的生命周期中都只有一个实例。用来保存应用程序设置和属性、用户保存的数据。存储在沙盒的Library/Preference中,NSUserDefaults可以存储的数据类型包括:NSData、NSString、NSNumber、NSDate、NSArray、NSDictionary。写入和读取都比较简单,如下:
写入:
NSString *str = [userDefault objectForKey:@"zhigang"]
@interface Person : NSObject <NSCoding>//遵守NSCoding协议
@property (nonatomic,strong) NSString *name
@property (nonatomic,assign) NSInteger age
@end
解档 *** 作:
同样调用NSCoder子类NSKeyedArchiver的方法unarchiveRootObject:toFile: 即可
[NSKeyedUnarchiver unarchiveObjectWithFile:path]
NSMutableData *data = [NSMutableData data]
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:data]
[archiver encodeObject:person forKey:@"person"]
[archiver encodeObject:bir forKey:@"bir"]
// 存档完毕(一定要调用这个方法)
[archiver finishEncoding]
[data writeToFile:path atomically:YES]
NSData *undata = [NSData dataWithContentsOfFile:path]
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc]initForReadingWithData:data]
[unarchiver decodeObjectForKey:@"person"]
[unarchiver decodeObjectForKey:@"bir"]
// 恢复完毕
[unarchiver finishDecoding]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)