gpt4 book ai didi

ios - 如何保留在完成 block 中设置的局部变量?

转载 作者:可可西里 更新时间:2023-11-01 01:00:11 26 4
gpt4 key购买 nike

我有一个函数,它接受一个 URL 并异步返回一个文件 URL,当我在 completion block 中打印 fileURL 的值时,它会完美地打印出来,但是变量 (fileURL) 不保留 completion block 之外的值

FileFactory.FetchFileWithURL(workingURL, completionHandler: { (url) ->    Void in
fileURL = url
print(fileURL) //prints valid URLs

})

print(fileURL) //prints nil

fileURL 定义为:-
var fileURL:String?

我如何确保 fireURL 保留它从 completion block 中获得的值?

编辑:

找到了类似的问题,但不幸的是它在 objc here

在 swift 中是否有任何等效于 Objective-C 的 __block

最佳答案

在 block 内调用一个新函数。在新方法中使用 fileURL 做您想做的事。

FileFactory.FetchFileWithURL(workingURL, completionHandler: { (url) ->    Void in
fileURL = url
print(fileURL) //prints valid URLs
doSomethingWithFileUrl(url)
})

关于ios - 如何保留在完成 block 中设置的局部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35251009/

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