我无法在Swift中使用Alamofire返回值

我无法在Swift中使用Alamofire返回值,第1张

概述我现在的代码似乎没有返回任何东西,我无法找出导致问题的原因. func getQuests(category: NSString, count: Int) -> NSArray { var quests = NSArray() Alamofire.request(.GET, apiUrlString, parameters: ["category": category, "cou 我现在的代码似乎没有返回任何东西,我无法找出导致问题的原因.

func getQuests(category: Nsstring,count: Int) -> NSArray {    var quests = NSArray()    Alamofire.request(.GET,APIUrlString,parameters: ["category": category,"count": count])        .responseJsON { (request,response,Json,error) in            dispatch_async(dispatch_get_main_queue(),{                quests = Json as NSArray            })    }    println(quests)  #=> ()    return quests}

有人知道如何解决我遇到的问题吗?

[更新]:这是状态.

请看第五行和第八行.
我无法完成任务的任务.

var quests = NSArray()getQuests("normal",count: 30,completionHandler: {    quests in        self.quests = quests    })println(self.quests)  #=> ()func getQuests(category: Nsstring,count: Int,completionHandler: (NSArray -> VoID)) {    var quests = NSArray()    Alamofire.request(.GET,{                quests = Json as NSArray                completionHandler(quests)            })    }}

谢谢.

解决方法 其他答案肯定是正确的,并且遇到了许多与异步 *** 作相关的问题.我只想补充一个事实,即dispatch_async(dispatch_get_main_queue())调用不是必需的.

这已经在Alamofire内部自动完成. Alamofire处理内部委托调度队列上的所有 *** 作.完成所有这些 *** 作(验证,响应序列化等)后,默认情况下会在主调度队列上调用完成处理程序闭包.这使得dispatch_async不再需要,应该删除它.

You can also run your completion handlers on your own provIDed dispatch queue if you like,but that’s certainly an advanced feature that is not applicable to this use case.

这是相同逻辑的更简洁版本.

let APIUrlString = "some/url/path"func getQuests(#category: Nsstring,completionHandler: (NSArray) -> VoID) {    Alamofire.request(.GET,"count": count])             .responseJsON { _,_,_ in                 completionHandler(Json as NSArray)             }}var myQuests: NSArray?getQuests(category: "normal",count: 30) { quests in    myQuests = quests    println("My Quests: \(myQuests)")}
总结

以上是内存溢出为你收集整理的我无法在Swift中使用Alamofire返回值全部内容,希望文章能够帮你解决我无法在Swift中使用Alamofire返回值所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/web/1008570.html

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

发表评论

登录后才能评论

评论列表(0条)

保存