- [NSKeyedUnarchiver initForReadingWithData:]:数据为空;你忘了把-finishEncoding发送给NSKeyedArchiver吗?

时间:2014-09-02 10:03:28

标签: xcode core-data

一旦我进入核心数据应用程序的“向下钻取”视图,我就会在表格视图上的第一个项目上收到此警告。

其他人得到了这个警告吗?

- [NSKeyedUnarchiver initForReadingWithData:]:数据为空;你忘了把-finishEncoding发送给NSKeyedArchiver吗?

感谢

3 个答案:

答案 0 :(得分:0)

Xcode 7.2.1,iOS 9.2.1,已启用ARC

检查您用于存储数据的NSData对象在访问之前是否未被释放。您必须在访问数据的位置进行检查,而不是在视图控制器或其他位置。

  

- [NSKeyedUnarchiver initForReadingWithData:]:数据为空;你忘了把-finishEncoding发送给NSKeyedArchiver吗?

当NSData对象为空时,将引发此警告。检查是否存在的可靠方法是使用[yourDataObject length]并确保它不为零。

希望这有帮助!欢呼声。

答案 1 :(得分:0)

一旦我遇到了这个问题,它的原因是......

NSString *str = @"ss";
NSString *temp = [str substringToIndex:4];

在iOS8中。

现在xCode8.1会告诉你

  

*由于未捕获的异常终止应用' NSRangeException',原因:' * - [__ NSCFConstantString substringToIndex:]:索引4超出界限;字符串长度2'

答案 2 :(得分:-1)

您似乎正在尝试从空数据对象中读取数据。

也许您之前将数据初始化为[NSData数据],或者您保存的数据为空。