小编Ora*_*chi的帖子

转义闭包捕获非转义参数“完成”(Swift 5)

在我的项目中,我遇到了一种情况,当我需要使用后台队列来创建 AVPlayerItem (我在setupTrackModels函数中创建)时。我想在getTracks函数中执行此操作,并且此方法还必须有一个完成处理程序,我需要在主线程中调用它,但我无法以任何方式使它们成为朋友。我收到编译器错误:Escaping closure captures non-escaping parameter 'completion'也许有人可以告诉我如何执行此操作或显示另一种方法。

我想做这样的事情:

var content: [URL] = []
var tracks: [TrackModelProtocol] = []

private func getTracks(completion: () -> ()) {
    DispatchQueue.global(qos: .background).async { //Error: Escaping closure captures non-escaping parameter 'completion'
        self.tracks = self.setupTrackModels(content: self.content)
        
        DispatchQueue.main.async { //Error: Escaping closure captures non-escaping parameter 'completion'
            completion()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我想使用这样的函数:

getTracks {
   tableView.reloadData()
   //or something else
}
Run Code Online (Sandbox Code Playgroud)

我不想tableView.reloadData()在 DispatchQueue.main 中使用。getTracks块,因为我多次调用并且我想在它的完成块中实现不同的逻辑

grand-central-dispatch ios completionhandler swift

5
推荐指数
1
解决办法
4236
查看次数

如何在 swift 5 中为表视图单元格添加滑动操作

我想添加编辑操作以在用户滑动表格行时显示。我以前可以使用该tableView(_:editActionsForRowAt:)方法,但现在已弃用。在该tableView(_:commit:forRowAt:)方法中,我不需要执行任何操作。如何为我的单元格添加操作?

uitableview ios swift uitableviewrowaction

2
推荐指数
1
解决办法
3084
查看次数

如何更改 WebView 中的字体大小 (Swift 5)

我将文本加载到 WebView。我需要更改字体及其大小。我用的是这个代码,但是字体太小了。这不是15分。我的问题是什么?

private lazy var webView: WKWebView = {
        let contentController = WKUserContentController()
        
        let webConfig = WKWebViewConfiguration()
        webConfig.userContentController = contentController
        webConfig.dataDetectorTypes = [.phoneNumber, .link]
        
        let web = WKWebView(frame: .zero, configuration: webConfig)
        web.navigationDelegate = self
        return web
    }()

    ...
    let fontName =  "PFHandbookPro-Regular"
    let fontSize = 15
    let fontSetting = "<span style=\"font-family: \(fontName);font-size: \(fontSize)\"</span>"
    webView.loadHTMLString(fontSetting + myHTMLString, baseURL: nil)
Run Code Online (Sandbox Code Playgroud)

例子

uiwebview webview ios swift

1
推荐指数
1
解决办法
4185
查看次数