我今天在HockeyApp控制台中遇到了我的应用程序的崩溃日志,在其中我看到了层次结构中的方法名称,该名称在应用程序的任何地方(实际上在任何地方)都没有被调用,只是被定义了。层次结构中的此方法名称似乎以术语“合并”为前缀。这是什么意思?在日志层次结构中使用这种方法的可能性是什么?
日志如下:
Exception Type: SIGABRT
Exception Codes: #0 at 0x1ad01acc
Crashed Thread: 12
Application Specific Information:
*** Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSCFSet: 0x15665e00> was mutated while being enumerated.'
Last Exception Backtrace:
0 CoreFoundation 0x1b533b3d __exceptionPreprocess + 129
1 libobjc.A.dylib 0x1a7bb067 objc_exception_throw + 36
2 CoreFoundation 0x1b5335e1 __NSFastEnumerationMutationHandler + 122
3 CoreData 0x1d4ad57f -[NSManagedObjectContext executeFetchRequest:error:] + 2564
4 <app_name> 0x01033d40 appName.ClassName.fetchAllWithRequest(_: __C.NSFetchRequest<__C.NSFetchRequestResult>, managedObjectContext: __C.NSManagedObjectContext) -> (managedObjects: [__C.NSManagedObject]?, error: Error?) (ClassName.swift:533)
5 <app_name> 0x01160bb0 merged appName.ClassName.fetchOtherTeamsReference(_: User, managedObjectContext: __C.NSManagedObjectContext) -> (managedObjects: [__C.NSManagedObject]?, error: Error?) + 666
6 <app_name> 0x0116090c appName.ClassName.fetchTeamsReference(_: User, managedObjectContext: __C.NSManagedObjectContext) -> (managedObjects: [__C.NSManagedObject]?, error: Error?) + 42
7 <app_name> 0x005773c0 appName.ClassName.start() -> () (DownloadTeamsOperation.swift:50)
8 <app_name> 0x00578040 @objc appName.ClassName.start() -> () (DownloadTeamsOperation.swift:0)
9 Foundation 0x1be5bd39 __NSOQSchedule_f + 188
10 libdispatch.dylib 0x1ac0e59d _dispatch_queue_serial_drain + 852
11 libdispatch.dylib 0x1ac04b71 _dispatch_queue_invoke + 884
上述跟踪的第5行包含方法名称(`fetchOtherTeamsReference),该名称实际上并未在整个应用程序代码中的任何地方调用。
答案 0 :(得分:0)
它表明您正在枚举任何集合。就像您要迭代数组并在同一循环内对它进行更改一样。
您可以从此链接获得更多帮助:
Collection <__NSArrayM: 0x7fa1f2711910> was mutated while being enumerated