swift - Alamofire 调用在循环内不起作用

标签 swift loops youtube-api alamofire swifty-json

我有一个循环,旨在使用 Alamofire 对 Youtube 的 API 进行 10 次不同的调用,每次调用都具有我从另一个函数获得的不同 videoID。但是,似乎没有调用,因为我没有从 Alamofire 开关中的成功或失败选项中获得结果。

谁能指出问题所在?

func getRecom(completion: (result:String)->()) {
    let array = defaults.arrayForKey("recomQuery")
    for i in 0..<10  {
    let videoURL = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails%2C+snippet&id=\(array![i])&maxResults=10&key=\(apiKey)"

    Alamofire.request(.GET, videoURL).validate().responseJSON { response in
        switch response.result {
        case .Success:
            print("success") //THIS IS NOT BEING CALLED
            if let value = response.result.value {
                let json = JSON(value)
                let videoTitle = json["items"][0]["snippet"]["title"].stringValue
                print("Title from network \(videoTitle)")
                let thumbPath = String(json["items"][0]["snippet"]["thumbnails"]["default"]["url"])
                print(i)
                let image = UIImage(data: NSData(contentsOfURL: NSURL(string: thumbPath)!)!)!
                let newImage: NSData = UIImagePNGRepresentation(image)!
                self.recomTitles.append(videoTitle)
                self.recomThumbs.append(newImage)
            }
        case .Failure(let error):
            print("failure") //THIS IS ALSO NOT BEING CALLED
            print(error)
            completion(result: "done")
            }
        }
    }
print("saving array: \(defaults.arrayForKey("recomTitles"))")
defaults.setObject(recomThumbs, forKey: "recomThumbs")
defaults.setObject(recomTitles, forKey: "recomTitles")
completion(result: "done")
}

提前致谢!

最佳答案

如果您在 Playground 中运行它,程序很可能会在调用打印之前结束,因为您是从异步方法中调用它的。如果是这种情况,请在开始时调用 XCPExecutionShouldContinueIndefinitely()。

关于swift - Alamofire 调用在循环内不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34984839/

相关文章:

php - 在google api中手动使 token 过期

swift - 可打印字符串插值不起作用

arrays - 订购 NSDate 数组。 swift 2

ios - maskToBounds 与 ClipsToBounds

c++ - 如何在不使用循环的情况下进行排序

jquery - 如何循环仅在其子节点中具有特定类的元素?

python - 为什么 trollius 不让这个循环异步运行?

youtube-api - 指定收件人 Youtube api v3 插入评论

swift - Xcode 和 Swift 本地化 - 恢复基础语言

java - 如何使用YouTube API v3(Java)删除订阅?