gpt4 book ai didi

返回 nil 的 swift 函数(返回太早)

转载 作者:行者123 更新时间:2023-11-28 10:30:29 24 4
gpt4 key购买 nike

<分区>

我在 ViewDidLoad 函数中有一些代码会在其调用堆栈的末尾设置一个类变量。我试图重构该代码,使其成为一个单独的函数,该函数将返回值而不是设置类变量。

由于我缺乏 swift 知识,我不确定哪里出了问题,似乎我的函数返回得太早了,因为我可以在调试器中告诉它它跳转到返回,在 shareURL 之前设置为 publicUrl.absoluteString

func getShareUrl() -> String? {
var shareURL: String?
if let extItem = extensionContext?.inputItems.first as? NSExtensionItem,
let itemProvider = extItem.attachments?.first as? NSItemProvider,
itemProvider.hasItemConformingToTypeIdentifier("public.url") {
itemProvider.loadItem(forTypeIdentifier: "public.url", options: nil) { (url, error) in
if let publicUrl = url as? URL {
shareURL = publicUrl.absoluteString
}
}
}
return shareURL
}

我还可以在调试器中看到,在主函数返回后稍后调用内部函数。

如何在返回之前等待内部调用完成?或者什么是正确的快速方法。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com