gpt4 book ai didi

iphone - NSArray 到 NSData 用于核心数据

转载 作者:行者123 更新时间:2023-12-01 19:14:59 28 4
gpt4 key购买 nike

我需要将数组保存在核心数据中,所以我读到我可以使用 NSData 。所以我认为存档有问题。

NSMutableArray *newArray = [[NSMutableArray alloc]init];
NSData *newData = [NSKeyedArchiver archivedDataWithRootObject:newArray];
[myEntity setValue:newData forKey:@"nameOfMyData"];

然后我尝试在另一个 VIewController 中选择我的数组进行填充
NSData *newdata = [NSData dataWithData:self.myEntity.nameOfMyData];
NSMutableArray *photoArray = [[NSMutableArray alloc]init];
photoArray = [NSKeyedUnarchiver unarchiveObjectWithData:newdata];

我没有崩溃,但在命令行中出现下一个:
[NSKeyedUnarchiver initForReadingWithData:]: data is empty; 
did you forget to send - finishEncoding to the NSKeyedArchiver?

当我尝试将对象添加到我的数组时,它不会添加
[photoArray addObject:myImage];

所以 myImage 正在创建并且我没有问题,但在调试器中总是为 photoArray 编写:
photoArray = (NSMutableArray*) 0x00000000 0 objects

最佳答案

它应该工作。但是在取消归档数组时,请使用:

NSData *newdata = [NSData dataWithData:self.myEntity.nameOfMyData];
NSMutableArray *photoArray = [NSMutableArray arrayWithArray: [NSKeyedUnarchiver unarchiveObjectWithData:newdata]];

您的数组中有不符合 NSCoding 协议(protocol)的对象,或者您没有保存核心数据上下文(或保存不成功)。

存档后
NSData *newData = [NSKeyedArchiver archivedDataWithRootObject:newArray];

当您检查 newData 是否为零时,您会看到什么?我想它是零。

关于iphone - NSArray 到 NSData 用于核心数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13920377/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com