You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 15:40:41