Swift:从dispatch_async内部返回结果

Swift:从dispatch_async内部返回结果,第1张

概述所以我在这里有一段代码不起作用.这是因为它在尝试解包可选值时发现了nil.这是因为它在异步方法中被初始化.我的问题是,在取出结果之前,我该如何推迟返回函数? struct Domain { var name: String? var tld: String? var combined: String { get { return se 所以我在这里有一段代码不起作用.这是因为它在尝试解包可选值时发现了nil.这是因为它在异步方法中被初始化.我的问题是,在取出结果之前,我该如何推迟返回函数?

struct Domain {    var name: String?    var tld: String?    var combined: String {        get {            return self.name!+self.tld!        }    }    var whoIs: String {        get {            if self.whoIs.isEmpty {                var result: String?                dispatch_async(dispatch_get_global_queue( disPATCH_QUEUE_PRIORITY_DEFAulT,0),{                    let whois_url = NSURL(string: SEARCH_URL+self.combined+"/whois")                    result = Nsstring(contentsOfURL: whois_url!,enCoding: NSUTF8StringEnCoding,error: nil)                    print(result!)                })                return result!            }            return self.whoIs        }    }}
@R_403_6120@ 如果要等待块的结果,只需使用dispatch_sync替换dispatch_async:

dispatch_sync(dispatch_get_global_queue( disPATCH_QUEUE_PRIORITY_DEFAulT,{    let whois_url = NSURL(string: SEARCH_URL+self.combined+"/whois")    result = Nsstring(contentsOfURL: whois_url!,error: nil)    print(result!)})

这将确保在将URL的内容提取到结果中之前不返回该方法.

总结

以上是内存溢出为你收集整理的Swift:从dispatch_async内部返回结果全部内容,希望文章能够帮你解决Swift:从dispatch_async内部返回结果所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/999797.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存