在iOS 13中崩溃

时间:2019-12-02 17:06:05

标签: ios objective-c

我的应用程序中的iOS 13崩溃了,我想知道是否还有其他人遇到过这种情况。

因此,我有一个nsordered设置,并且我试图通过它进行循环。我对其进行了复制,但似乎当该集合为空时,会得到以下崩溃报告: [__ NSArrayM getObjects:range:]:范围{0,1}超出了空数组的范围

这是代码。

(NSOrderedSet<ClassA *> *)set { return [self.mutableSet copy]; }

//调用上面的方法以获取集合的副本

for (ClassA *obj in [classManager manager].set)

这是堆栈跟踪:

CoreFoundation -[__ NSCFString characterAtIndex:]。cold.1

CoreFoundation -[__ NSArrayM getObjects:range:]

CoreFoundation -[NSOrderedSet countByEnumeratingWithState:objects:count:]

1 个答案:

答案 0 :(得分:0)

您的问题在其他地方。我只是运行了以下代码:

NSMutableOrderedSet *s1 = [NSMutableOrderedSet new];
NSOrderedSet *s2 = [s1 copy];

NSOrderedSet *t1 = [NSOrderedSet new];
NSMutableOrderedSet *t2 = [t1 mutableCopy];
NSOrderedSet *t3 = [t2 copy];
NSLog(@"\n%@ %@ %@ %@ %@\n", s1, s2, t1, t2, t3);

这将输出:

{(
)} {(
)} {(
)} {(
)} {(
)}

我建议您打印self.mutableSet-它可能​​不是您期望的。另外,您的for行完全没有上下文,因此不知道发生了什么。我的结果:

NSLog(@"%@ %@", NSStringFromClass([s1 class]), NSStringFromClass([t1 class]));
// __NSOrderedSetM __NSOrderedSetI