【发布时间】:2011-12-03 17:16:38
【问题描述】:
我正在尝试开发 Cydia 调整,但现在我遇到了一些问题。
我想复制一个 NSMutableArray,所以我使用:
myArray = %orig;
NSMutableArray* myArray2;
myArray2 = myArray;
NSData* data = [NSKeyedArchiver archivedDataWithRootObject: myArray2];
(原来的函数返回一个 NSMutableArray,所以我用 myArray = %orig; 来获取)
但是,archivedDataWithRootObject 似乎不起作用,它总是导致我的设备崩溃。
那么,archivedDataWithRootObject 有什么限制吗?我不知道原始 NSMutableArray 是否已编码。我可以将 archivedDataWithRootObject 用于编码的 NSMutableArra 吗?
感谢您的任何建议和回复
【问题讨论】:
-
能否提供崩溃日志?当 ObjC 应用程序转储核心时,它通常会打印出调用堆栈。我很高兴看看哪个函数崩溃了。您甚至可以使用 gdb 来检索它并查看回溯。
-
似乎我无法获取它们,因为整个 iOS 崩溃(重新启动),我在 xcode 中找不到崩溃报告。
-
我现在得到日志。它说“-[UIKBTree encodeWithCoder:]: unrecognized selector sent to instance 0xe8cdbe0”
-
这是来自 NSCoding 协议
encodeWithCoder:的一种方法,我说过你必须实现它才能使用 NSKeyedArchiver 归档数据。
标签: objective-c ios nsmutablearray nsdata