【发布时间】:2017-06-01 21:54:13
【问题描述】:
我有一次不规则的崩溃(设备上 5 次中有 1 次,模拟器上 5 次中有 4 次)。我设置了一个异常断点,它发生在没有任何控制台信息的以下行:
if let carColorSet = car.carToDisplay?.allObjects as? [Display] {
注意:car.carToDisplay 是一个 NSSet
在设置异常断点之前,我会在控制台崩溃时得到以下信息:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSMutableSet unionSet:]: set argument is not an NSSet'
*** First throw call stack:
(
0 CoreFoundation 0x0000000102e79b0b __exceptionPreprocess + 171
1 libobjc.A.dylib 0x00000001023d6141 objc_exception_throw + 48
2 CoreFoundation 0x0000000102e00051 -[NSMutableSet unionSet:] + 1041
3 CoreData 0x0000000101b10df8 -[_NSFaultingMutableSet willReadWithContents:] + 936
4 CoreData 0x0000000101af131b -[_NSFaultingMutableSet allObjects] + 27
5 Keyboard 0x00000001018f838e
这里有什么想法吗?当我尝试将 carToDisplay?.allObjects 转换为 Display 对象数组时,似乎发生了崩溃。
顺便说一句,这是一个键盘扩展应用程序。
感谢您的任何意见!
【问题讨论】:
-
您指出的代码行似乎没问题,因为它使用了
if let和as?此外,异常清楚地表明在unionSet实例上调用unionSet时会导致异常设置一个异常断点,这样 Xcode 就会停在异常的行。找出该行并使用相关代码更新您的问题。 -
@user1046037 谢谢!我已经设置了异常断点并用结果更新了我的问题。
标签: ios swift core-data custom-keyboard