繁体   English   中英

用于核心数据的NSArray到NSData

[英]NSArray to NSData for Core Data

我需要在核心数据中保存数组,所以我读到我可以使用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协议,或者您没有保存核心数据上下文(或保存不成功)。

归档后

NSData *newData = [NSKeyedArchiver archivedDataWithRootObject:newArray];

当你检查nData的newData时你看到了什么? 我想它是零。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM