[英]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.