【问题标题】:Irregular crash when creating NSManagedObject out of NSSet从 NSSet 创建 NSManagedObject 时不规则崩溃
【发布时间】: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 letas? 此外,异常清楚地表明在unionSet 实例上调用unionSet 时会导致异常设置一个异常断点,这样 Xcode 就会停在异常的行。找出该行并使用相关代码更新您的问题。
  • @user1046037 谢谢!我已经设置了异常断点并用结果更新了我的问题。

标签: ios swift core-data custom-keyboard


【解决方案1】:

问题(可能):

if let carColorSet = car.carToDisplay?.allObjects as? [Display] 

carToDisplayNSet 然而函数allObjects返回一个数组

我认为您正在尝试使用数组进行 unionSet。

更新问题:

请更新您的问题,问题没有说明正确的错误行。

问题需要做到以下几点

  • 调用 unionSet 的状态。
  • unionSet 的参数类型是什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-18
    相关资源
    最近更新 更多