iOS开发:沙盒存储类对象
1、建立一个类,初始化一个对象并赋值
Test *test = [[Testalloc]init];
test.name = @"沙盒";
[test setGender:@"男"];
[test setAge:20];
2、沙盒存储:
NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documents = [array lastObject];
NSString *documentPath = [documents stringByAppendingPathComponent:@"TEST.av"];
//存储:
/*
***重点:对象类型数据不能直接写入文件,需要通过归档和返归档(即写入和读取)
*/
//归档
[NSKeyedArchiver archiveRootObject:test toFile:documentPath];
//返档
Test *result = [NSKeyedUnarchiver unarchiveObjectWithFile:documentPath];
//在类文件中要对对象编码、解码
//协议自带的两个方法:
#pragma mark 第二步:对test对象编码
- (void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:self.name forKey:@"name"];
[aCoder encodeObject:self.gender forKey:@"gender"];
[aCoder encodeInteger:self.age forKey:@"age"];
}
#pragma mark 第三步:对text对象解码
- (id)initWithCoder:(NSCoder *)aDecoder{
self = [super init];
if (self) {
self.name = [aDecoder decodeObjectForKey:@"name"];
self.gender = [aDecoder decodeObjectForKey:@"gender"];
self.age = [aDecoder decodeIntegerForKey:@"age"];
}
return self;
}
结果如下表:但具体存储zhi
NSFileManager *fileManager = [NSFileManager defaultManager];
//文件系统下文件的增、删、查。
(1).增:就是创建文件夹的过程,具体见沙盒;
(2).查询文件管理器中指定路径下是否有某个文件
BOOL isExist = [fileManager fileExistsAtPath:documentPath];
(3).删除文件
BOOL isRemoved = [fileManager removeItemAtPath:documentPath error:nil];