部分适用于来自@callee_unowned的reabstraction thunk helper的转发器

7ba*_*all 6 closures ios swift

我有以下Swift函数:

func refresh(optionalHandler: @escaping (() -> Void) = {}) {
  afnetworking.get(someURL, parameters: nil, successHandler: {
    (task: URLSessionDataTask, object: Any) in
      print(task)
      optionalHandler() // This crashes with EXC_BAD_ACCESS
  })
}
Run Code Online (Sandbox Code Playgroud)

不确定这里发生了什么......完整的错误是:

optionalHandler () -> ()    0x000000010018baac MyApp`partial apply forwarder for reabstraction thunk helper from @callee_unowned @convention(block) () -> () to @callee_owned () -> () at MyViewController.swift
Run Code Online (Sandbox Code Playgroud)

小智 0

大概在afnetworking.get(someURL, parameters: nil, successHandler:你里面打过successHandler几次电话。

第二次调用optionalHandler()使您的应用程序崩溃