Xcode -[NSKeyedUnarchiver initForReadingWithData:]:数据为空;您是否忘记将-finishEncoding发送到NSKeyedArchiver?

Xcode -[NSKeyedUnarchiver initForReadingWithData:]:数据为空;您是否忘记将-finishEncoding发送到NSKeyedArchiver?,xcode,core-data,Xcode,Core Data,当我进入核心数据应用程序的“向下钻取”视图时,我仅在表视图的第一项上收到此警告 还有人收到这个警告吗 -[NSKeyedUnarchiver initForReadingWithData:]:数据为空;您是否忘记将-finishEncoding发送到NSKeyedArchiver 谢谢您似乎正在尝试从空数据对象读取数据 可能您之前将数据初始化为[NSData data],或者您保存的数据为空。Xcode 7.2.1、iOS 9.2.1、ARC启用 检查用于存储数据的NSData对象在被访问之前是

当我进入核心数据应用程序的“向下钻取”视图时,我仅在表视图的第一项上收到此警告

还有人收到这个警告吗

-[NSKeyedUnarchiver initForReadingWithData:]:数据为空;您是否忘记将-finishEncoding发送到NSKeyedArchiver


谢谢

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


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

Xcode 7.2.1、iOS 9.2.1、ARC启用

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

-[NSKeyedUnarchiver initForReadingWithData:]:数据为空;您是否忘记将-finishEncoding发送到NSKeyedArchiver

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


希望这有帮助!干杯。

一旦我遇到这个问题,它是由

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

现在,xCode8.1将告诉您

*由于未捕获的异常“NSRangeException”而终止应用程序,原因:'*-[\uu NSCFConstantString substringto Index:]:索引4超出范围;字符串长度2'


希望你很久以前就解决了这个问题,但我刚才无意中发现了你的帖子。我发布了我的答案,这里有一个有用的帖子:谢谢。这与我的项目不再相关,但它可以帮助其他人。后来我换了一种不同的型号和雨燕。