Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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
iOS崩溃问题-SIGSEGV_Ios_Core Data_Crash_Nssortdescriptor - Fatal编程技术网

iOS崩溃问题-SIGSEGV

iOS崩溃问题-SIGSEGV,ios,core-data,crash,nssortdescriptor,Ios,Core Data,Crash,Nssortdescriptor,在NSMutableSet上使用NSSortDescriptor时,我的应用程序崩溃 这是密码 NSArray *sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:EIKNewsHeadlineAttributeHeadlineId ascending:YES]]; NSArray *orderedHeadlines = [weakSelf.storedHeadlines sortedArrayUsingDescriptor

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

这是密码

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

NSArray *orderedHeadlines = [weakSelf.storedHeadlines sortedArrayUsingDescriptors:sortDescriptors];
这里storedHeadlines是
NSMutableSet
,我的排序描述符键是
EIKNewsHeadlineAttributeHeadlineId
,它是一个NSString
@“headlineId”

我的可变集包含特定类类型的对象,该类有一个名为
headlineId
的属性,我正试图对可变集进行排序

我在私有队列上的
performBlock
中执行此排序。 我检查了我的
weakSelf
NSMutableSet
。两者都不是零


导致问题的原因是什么?

从崩溃日志中可以看出,数组中的某些元素不是
NSString
。表示这一点的行是
objc\u msgSend()选择器名称:length

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

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

你能发布解析JSON的代码吗


如果不可能,您可以在排序之前过滤集合,从崩溃日志中删除所有非
NSString

类型的元素。看起来数组中的某些元素不是
NSString
。表示这一点的行是
objc\u msgSend()选择器名称:length

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

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

你能发布解析JSON的代码吗


如果不可能,您可以在排序之前过滤集合,消除所有非NSString类型的元素。您是否看到任何崩溃日志?@kapsym请在此处查看崩溃日志您是否看到任何崩溃日志?@kapsym请在此处查看崩溃日志,正如您所说的,阵列中的某些元素可能不是NSStr类型ing。我的问题是如何将非NSString分配给希望NSString重现问题的集合?我在iPhone或iPad上没有看到这种崩溃,但我们的客户面临着这个问题。感谢您的明确解释。“objc_msgSend()选择器名称:length”的解释“这正是我想要的。感谢您清除了这个问题并进行了可能的解决。正如您所说的,数组中的某些元素可能不是NSString类型。我的问题是,如何将非NSString分配给希望NSString重现问题的集合?我并没有在我的iphone或iPad上看到这种崩溃,但我们的客户正面临着这个问题。感谢您的明确解释。“objc_msgSend()选择器名称:length”的解释正是我想要的。谢谢你清除了这一点,并为可能的解决办法。