Crashlytics上报Closure Partial Apply崩溃问题排查求助
问题:Closure Partial Apply 崩溃(已用[weak self]但无效)
Crashlytics收到Closure Partial Apply的崩溃上报,已尝试使用[weak self]方案但无效,本地测试设备无法复现该崩溃。根据崩溃报告,问题出现在下拉框展示函数中,相关代码及崩溃日志如下:
展示下拉框函数代码
func showDropDown(_ names: [String], forResult result: SearchPatientResultResponnse) { guard let vc = viewController else { return } self.searchedPatientNames = result.data?.patientSearchSuggestions Helpers.showSearchDropdown(anchorView: vc.searchBar.searchTextField, dataSource: names, scrollToTop: true, completion: { [weak self] (i, item) in guard let self = self else { return } vc.searchBar.text = item vc.dismissKeyboard() self.selectedSearchPatient = self.searchedPatientNames?[i] if let d = self.searchedPatientNames?[i].dob { vc.dobTF.text = DateTimeFormatters.userUIDateFormatterInUTC.string(from: d) } self.search(self.selectedSearchFilter) }, fetchPaginationData: { [weak self] in guard let self = self, !self.isNameSearchLastPage, self.page != -1 else { return } vc.searchBar.isLoadingWithoutSearchIcon = true self.fetchPatientNameNextPage() }, cancel: { [weak self] in self?.resetPaginationParams() }) }
调用该函数的代码
func getQueryPatientResponse() { guard let vc = viewController else { return } SocketIOManager.shared.queryResponseForPatient = { [weak self] result in var names: [String] = [] self?.isNameSearchLastPage = result.data?.isLastPage ?? true self?.page = result.data?.pageNumber ?? -1 for data in result.data?.patientSearchSuggestions ?? [] { var name = "" if !data.middleName.isEmpty { name = data.firstName + " " + data.middleName + " " + data.lastName } else { name = data.firstName + " " + (data.lastName) } names.append(name) } vc.searchBar.isLoadingWithoutSearchIcon = false self?.page == 1 ? self?.showDropDown(names, forResult: result) : self?.updateDropDown(names, forResult: result) } }
Crashlytics崩溃日志
Crashed: com.apple.main-thread 0 Ovada CM - PT 0x639b0 closure #1 in VisitStatusViewModel.showDropDown(_:forResult:) + 4340890032 (<compiler-generated>:4340890032) 1 Ovada CM - PT 0x3f328 partial apply for closure #1 in static Helpers.showSearchDropdown(anchorView:dataSource:scrollToTop:completion:fetchPaginationData:cancel:) + 121 (Helpers.swift:121) 2 Ovada CM - PT 0x15604c DropDown.tableView(_:didSelectRowAt:) + 4341882956 (<compiler-generated>:4341882956) 3 Ovada CM - PT 0x156548 @objc DropDown.tableView(_:didSelectRowAt:) + 4341884232 (<compiler-generated>:4341884232) 4 UIKitCore 0xfe36d0 -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:isCellMultiSelect:deselectPrevious:] + 1640 5 UIKitCore 0xfe3050 -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 112 6 UIKitCore 0xfe394c -[UITableView _userSelectRowAtPendingSelectionIndexPath:] + 316 7 UIKitCore 0x30c240 -[_UIAfterCACommitBlock run] + 64 8 UIKitCore 0x227770 -[_UIAfterCACommitQueue flush] + 200 9 UIKitCore 0x155eb0 _runAfterCACommitDeferredBlocks + 640 10 UIKitCore 0x15657c _cleanUpAfterCAFlushAndRunDeferredBlocks + 128 11 UIKitCore 0x156748 _afterCACommitHandler + 56 12 CoreFoundation 0x3e83c _CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION_ + 32 13 CoreFoundation 0xfa74 __CFRunLoopDoObservers + 616 14 CoreFoundation 0xaffc __CFRunLoopRun + 1012 15 CoreFoundation 0x1e250 CFRunLoopRunSpecific + 572 16 GraphicsServices 0x1988 GSEventRunModal + 160 17 UIKitCore 0x4e5a94 -[UIApplication _run] + 1080 18 UIKitCore 0x27efd4 UIApplicationMain + 336 19 Ovada CM - PT 0x6070 main + 14 (AppDelegate.swift:14) 20 ??? 0x1029dc4d0 (Missing)
内容的提问来源于stack exchange,提问作者Salman Sohail
相关产品推荐
相关产品推荐

