iOS 崩溃问题 - SIGSEGV



我的应用程序在NSMutableSet上使用NSSortDescriptor时崩溃。

这是代码

NSArray *sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:EIKNewsHeadlineAttributeHeadlineId ascending:YES]];
NSArray *orderedHeadlines = [weakSelf.storedHeadlines sortedArrayUsingDescriptors:sortDescriptors];

这里存储的标题是NSMutableSet,我的排序描述符键是EIKNewsHeadlineAttributeHeadlineId,这是一个 NSString@"headlineId”

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

我正在专用队列的performBlock内执行此排序。 我检查了我的weakSelfNSMutableSet.两者都不是零。

导致问题的原因是什么?

从崩溃日志来看,数组中的某些元素似乎没有NSString。说这句话是objc_msgSend() selector name: length

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

我相信问题出在 JSON 到可变集解析中。如果你在对集合进行排序之前打印集合的内容,它可能会让你知道数组中的哪些对象是错误的。

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

如果不可能,您可以在排序之前过滤集合,消除所有不属于NSString类型的元素

最新更新