Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode sigabrt on filteredarrayingpredicate_Xcode_Predicate_Sigabrt - Fatal编程技术网

Xcode sigabrt on filteredarrayingpredicate

Xcode sigabrt on filteredarrayingpredicate,xcode,predicate,sigabrt,Xcode,Predicate,Sigabrt,我是一个书呆子,试图把一本书中的一个例子转换成一个我可以使用的应用程序 示例应用程序是contacts应用程序的修改版本,可以正常工作 我做了一些进一步的修改,搜索不再有效。它在下面的行上显示 self.filteredAnswercards = [flattenedArray filteredArrayUsingPredicate:predicate]; 我被难住了。 我的头被键盘打得血淋淋的 非常感谢您的帮助 谢谢。如果没有看到更多代

我是一个书呆子,试图把一本书中的一个例子转换成一个我可以使用的应用程序

示例应用程序是contacts应用程序的修改版本,可以正常工作

我做了一些进一步的修改,搜索不再有效。它在下面的行上显示

self.filteredAnswercards = [flattenedArray
                            filteredArrayUsingPredicate:predicate];
我被难住了。 我的头被键盘打得血淋淋的

非常感谢您的帮助


谢谢。

如果没有看到更多代码,很难说。Sigabort通常表示已引发异常。您可以在
objc\u exception\u throw
中放置断点,以获得回溯跟踪,这将有助于突出显示原因

如果你没有从上面得到新的信息,其他人说完全重新启动计算机会有帮助。。。但我还没有一个能够证实这一点的情况

----根据评论进行编辑-----


听起来好像
filteredAnswercards
为零,这肯定会导致Sigabort。正确地分配该数组,您就可以开始了。

我猜
谓词
为零。你把它分配到哪里了?或者您从未分配它?

我的建议是将崩溃的行包装在@try/@catch块中,并在catch中记录异常和异常的callStackSymbols方法的结果


作为记录,Xcode的4.x版本的部分问题在于,它们在告诉您异常来自哪里方面比3.x版本差得多。因此,熟悉使程序或调试器告诉您需要了解的内容的技巧非常重要。

需要查看更多代码。.我建议将崩溃的行包装在@try/@catch块中,并在catch中,记录异常和异常的
callStackSymbols
方法的结果。@PhillipMills omg,我按照您的建议做了,在整个堆栈转储之前,我收到了以下消息:Catchpoint 3(引发异常)。2012-04-25 19:52:02.267 Catalog[3862:207]未捕获异常:[valueForUndefinedKey:]:此类不符合密钥卡片标题的密钥值编码。哇!这很好,因为这是我正在做过滤的领域。那么,这到底是什么意思?@PhillipMills,天哪!!!谢谢你,菲利普!我能够看到一些我本以为会给我一个更好的错误的东西。问题在于谓词,字段名拼写错误。在谓词中,它是ans_cards_title,但真实名称是ans_card_title(卡片上不是复数形式),哦,这很痛苦!!!谢谢谢谢谢谢谢谢!!!其实谢谢大家!!!我感谢你的时间和关注,哇,你救了我。我勇敢地向前走。。。转到下一个异常!!!:)很高兴知道我只是无知而不疯狂(嗯,不太疯狂):@PhillipMills我不知道如何才能相信你的回答。。。帮我给你信用。每个人都很乐于助人,但正是这件事把我吵醒了。。。如果你在下面回答。。。我想我可以给你点信任。我找到了添加断点的地方,我可以添加一个异常断点,但我不知道如何具体说明如何在objc_exception_throw上创建断点。我已经创建了一个异常断点,现在它正在那里中断,但我不知道该看什么,也不知道在哪里访问我需要的值。填充的数组是,填充了对象,接收数组是(null),这有点麻烦,因为这是我能从工作的示例代码中收集到的唯一区别(工作示例将接收数组显示为空数组,而不是null).在我的RootViewController.h中,我有以下两行:NSArray*filteredAnswercards;和@property(retain,非原子)NSArray*filteredAnswercards;在RootViewController.m中,我有:NSPredicate*谓词=[NSPredicate predicateWithFormat:@“ans_cards_title以[c]@”开头,self.searchBar.text];和self.filteredAnswercards=[FlattedArray filteredArrayUsingPredicate:predicate];在日志中,谓词是:ans_cards_title以[c]“N”开头。平坦数组中有对象。这就是你的问题。数组不应为nil,并且正在生成sigabort。检查文档,注意FilterArraySingPredicate不返回数组。。。实际上,现在我在日志中泄漏了更多信息,两个版本(工作和非工作)在“filteredArrayUsingPredicate”行之前都有一个空数组。两个版本中都没有该数组的alloc语句。除非我遗漏了什么(绝对是这样)。有什么我可以给你提供更多信息的吗?谓词不是空的,它是:ans_cards_title以[c]“n”开头,在两个版本中更好地检查后,接收数组以(null)开头,我之前一定是误读了日志。另外,在这两个版本中,都没有对数组执行任何alloc,它们都在RootViewController.h中定义如下:NSArray*filteredAnswercards;'和@property(retain,非原子)NSArray*filteredAnswercards;`然后在RootViewController.m中合成如下:`@synthesis filteredAnswercards;'我搜索了这两个版本,对它的引用是相同的。谓词不是空的,它是:
ans\u cards\u title以[c]“n”
开头(当然没有单引号),在两个版本中进行更好的检查后,接收数组以(null)开头,我之前一定读错了日志。另外,在这两个版本中,都没有对数组执行任何alloc,它们都在RootViewController.h中定义如下:
NSArray*filteredAnswercards;'和
@property(保留,非原子)NSArray*filteredAnswercards;`然后在RootViewController.m中合成如下:`@synthesis filteredAnswercards;'我已经搜索过了,我找到的参考文献是你的sameThank Ken