在Swift中了解崩溃报告(部分应用…)

我是Swift编程新手,最近我用Swift实现了我的应用程序的Spotlightsearch。 一切都运行良好,但是,我现在得到的崩溃报告很less,我不知道什么是“部分适用”,为什么它崩溃。因为我无法在本地模拟,我试图解决它通过使用崩溃日志。 以下是崩溃报告

Thread : Crashed: com.apple.root.default-qos 0 AppName 0x1076d4 partial apply for static spotLightSearchManager.(indexAllItem in _03019F3D5642F39F2DF678310DF7E384)() -> () (spotLightSearchManager.swift:77) 1 AppName 0x10761c partial apply for static spotLightSearchManager.(indexAllItem in _03019F3D5642F39F2DF678310DF7E384)() -> () (spotLightSearchManager.swift:73) 2 AppName 0x107730 partial apply for thunk (spotLightSearchManager.swift) 3 AppName 0x107808 partial apply for static spotLightSearchManager.(clearAllItem(spotLightSearchManager.Type) -> (OnCompletion : () -> ()!) -> ()).(closure #1) (spotLightSearchManager.swift:85) 4 CoreSpotlight 0x2ae7ce0d __45-[CSSearchableIndexRequest _finishWithError:]_block_invoke + 20 5 libdispatch.dylib 0x2492fdd7 _dispatch_call_block_and_release + 10 6 libdispatch.dylib 0x2493b7b9 _dispatch_root_queue_drain + 1572 7 libdispatch.dylib 0x2493b193 _dispatch_worker_thread3 + 94 8 libsystem_pthread.dylib 0x24ac8e0d _pthread_wqthread + 1024 9 libsystem_pthread.dylib 0x24ac89fc start_wqthread + 8 

我正在尝试在应用启动时重新编制search项目。

  static func reIndexAllItem () { if #available(iOS 9.0, *) { clearAllItem(OnCompletion: indexAllItem) } else { // Fallback on earlier versions APLog("SpotLight index not added for older versions") } } } static private func indexAllItem () { for dataItem in APAuthUrlDataSource.sharedInstance().accountArray { // Crash logs points to this line. addSearchIndexForItem(dataItem as! APAuthUrlDataItm) } } // Line number 77 static func clearAllItem (OnCompletion completion : (()-> Void)!) { if #available(iOS 9.0, *) { CSSearchableIndex.defaultSearchableIndex().deleteAllSearchableItemsWithCompletionHandler { (error) -> Void in // On completion. APLog("successfully cleared all index in spotlight search") **completion()** //Line number 85 } } else { // Fallback on earlier versions APLog("SpotLight index not cleared for older versions") } } 

注意:reindexAlltem正在从didFinishLaunchingWithOptions方法中调用。

任何帮助将非常感激,在此先感谢。

看来,APAuthUrlDataItm的投射失败。 我假设accountArray没有明确的types[APAuthUrlDataItm],否则为什么你需要这个演员?

考虑这个代码:

  for dataItem in accountArray { if let item = dataItem as? APAuthUrlDataItm { addSearchIndexForItem(item) } }