Alamofire库Void不能转换为Response <anyobject,nserror =“”> - &gt;空虚

时间:2015-11-26 05:56:27

标签: swift alamofire

我有一个将JSON结果设置为NSDictionary的函数。然后它使用此值来调用其他一些函数。我正在使用Alamofire,因为我在Swift 1中编写了这个应用程序,有些已经改变,这给了我错误。

这是功能:

func fetchApiData() {


    // I believe this is the problem code below.


            let _requestURL1 = Alamofire.request(.GET,dataSourceURL!)
    _requestURL1.responseJSON { (_requestUrl, _requestResponse, _objJSON1, error) -> Void in
        if(_objJSON1 != nil)
        {
            let jsonResult1 = _objJSON1 as NSDictionary;
            self.checkIP(jsonResult1)
            self.checkGeo(jsonResult1)
        }
        else{
            return
        }
    }
        let _requestURL2 = Alamofire.request(.GET,self.dataSourceURL2!)
        _requestURL2.responseJSON { (_requestUrl, _requestResponse, _objJSON2, error) -> Void in
            if(_objJSON2 != nil)
            {
                let jsonResult2 = _objJSON2 as NSDictionary;
                self.checkDNS(jsonResult2)
                NSTimer.scheduledTimerWithTimeInterval(self.refreshFrequencyInt, target: self, selector: Selector("fetchApiData"), userInfo: nil, repeats: false)
            }
            else{
                return
            }
        }
    }

显然现在,这一行:

    _requestURL1.responseJSON { (_requestUrl, _requestResponse, _objJSON1, error) -> Void in

给了我这个错误:

'(_, _, _, _) -> Void' is not convertible to 'Response<AnyObject, NSError> -> Void'

我已经尝试过针对此问题的解决方案,但我似乎无法使代码以与以前相同的方式运行。

请帮忙! :)

1 个答案:

答案 0 :(得分:0)

试试这个:

       Alamofire.request(.GET, url)
        .responseJSON(completionHandler: {
        (JSON) -> Void in
            let JSONDictonary = JSON.result.value as! NSDictionary
           let photoInfos = (JSONDictonary.valueForKey("photos") as! [NSDictionary]).filter({
                ($0["nsfw"] as! Bool) == false
            }).map{
                PhotoInfo(id: $0["id"] as! Int, url: $0["image_url"] as! String)
            }