关于模型数组进行本地保存中遇到的一些问题

本文记录了在iOS开发中遇到的一个问题:试图将包含模型对象的数组保存到本地时,由于对象不是属性列表类型导致应用崩溃。作者尝试了多种方法,包括使用NSUserDefaults和直接写入文件,最后成功的方法是先将模型数组转换为字典数组,然后再进行本地保存和读取,实现了模型数据的正确持久化。

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


今天我在项目中遇到一个难题

本地数据要进行保存,此时我的数据源是一个数组,但是我的数组内部的元素为模型,我在进行数据源保存的时候出现了错误:报错如下:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attempt to insert non-property list object


显示尝试插入一个非属性的对象,在数组内部是模型元素的情况下,将数组保存在本地会出错,

之前我用了:

方法一:(失败)

        //数据写入

NSString * docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES) lastObject];

            

        NSString * fileName = [docDir stringByAppendingPathComponent:@"models"];

            

        [arrayl writeToFile:fileName atomically:YES];

//数据读取

        NSString * docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES) lastObject];

        NSString * fileName = [docDir stringByAppendingPathComponent:@"models"];

        NSArray * models = [NSArray arrayWithContentsOfFile:fileName];

方法二:(失败)

//数据写入

[

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值