iOS 文件的三种储存方式

本文介绍了iOS应用中常见的三种文件存储方式:归档形式、用户偏好设置及plist文件,并提供了具体的实现代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



 文件的三种存储方式


1.归档形式

//     归档解档可以针对所有的对象 : 必须要遵守协议 NSCoding


NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];


NSString *flierPath = [path stringByAppendingString:@"abc.date"];



[NSKeyedArchiver archiveRootObject:person toFile:flierPath];



//归档

- (void)encodeWithCoder:(NSCoder *)aCoder {

    

    //    _name转成啊\NSCoder类型

    [aCoder encodeObject:_name forKey:@"name"];    

    [aCoder encodeInteger:_age forKey:@"age"];

       

}


//解档


- (instancetype)initWithCoder:(NSCoder *)aDecoder{

    if ( self = [super init]) {

        self.name = [aDecoder decodeObjectForKey:@"name"];

        self.age = [aDecoder decodeIntegerForKey:@"age"];    

    }

    

    return self;

}





2.用户偏好

//存入文件

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

// 保存用户数据

    [defaults setObject:@"hju" forKey:@"name"];

    [defaults setInteger:18 forKey:@"age"];

    [defaults  setBool:YES forKey:@"123"];

//    写入完要同步

    [defaults synchronize];


//    取出文件

    NSString *name = [[NSUserDefaults standardUserDefaults]objectForKey:@"name"];

    NSInteger age = [[NSUserDefaults standardUserDefaults]integerForKey:@"age"];

    BOOL married = [[NSUserDefaults standardUserDefaults]boolForKey:@"123"];



3.plist文件

//查找文件

     NSString  *path = NSSearchPathForDirectoriesInDomains(        NSDocumentDirectory,  NSUserDomainMask, YES)[0];


//拼接文件名

    NSString *fliePath = [path stringByAppendingString:@"aa.plist"];

//  存入数组

    NSArray *array = @[@"123",@"12"];

    [array writeToFile:fliePath atomically:YES];


//    存入字典

    NSDictionary *dict = @{@"cc":@"ff"};

    [dict writeToFile:fliePath atomically:YES];


//读取

//    查找文件

    NSString  *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];

//    拼接路径

    NSString *fliePath = [path stringByAppendingString:@"aa.plist"];


//    读取文件

    NSDictionary *dict = [NSDictionary  dictionaryWithContentsOfFile:fliePath];






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值