iOS CRASH问题 - SIGSEGV

时间:2017-07-21 09:23:21

标签: ios core-data crash nssortdescriptor

我在NSSortDescriptor上使用NSMutableSet时崩溃了。

这是代码

NSArray *sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:EIKNewsHeadlineAttributeHeadlineId ascending:YES]];

NSArray *orderedHeadlines = [weakSelf.storedHeadlines sortedArrayUsingDescriptors:sortDescriptors];

这里的storedHeadlines是NSMutableSet,我的排序描述符键是EIKNewsHeadlineAttributeHeadlineId,它是一个NSString @"headlineId”

我的可变集包含某个类类型的对象,并且该类有一个名为headlineId的属性,我试图对该可变集进行排序。

我正在私有队列的performBlock内执行此排序。 我查看了weakSelfNSMutableSet。两者都不是零。

导致问题的原因是什么?

1 个答案:

答案 0 :(得分:2)

从崩溃日志看起来,数组中的某些元素不是NSString。说明这一点的行是objc_msgSend() selector name: length

这意味着数组中的对象不响应length选择器。

我认为问题在于JSON中的可变集解析。如果要在排序之前打印集合的内容,它可能会让您知道阵列中的哪些对象是错误的。

你能发布解析JSON的代码吗?

如果不可能,您可以在排序前过滤该集合,从而消除所有不属于NSString

类型的元素