在swift中调用额外的参数'completion'

时间:2015-02-19 06:54:17

标签: ios swift ios8

我是Swift语言的新手。我已经用完成块写了函数

import Foundation
import Alamofire

struct ConnectionManager {
func callGetMethod(url:NSString , completion:(responseData:AnyObject,errorMessage:NSError)->Void)
{

    let urlObj = NSURL(string: url)!

    Alamofire.request(.GET, urlObj).responseJSON() {
        (_, _, data, error) in

        completion( responseData: data!, errorMessage: error!)

        println(data)
    }
}
}

并从我的viewcontroller调用,但我收到错误调用中的额外参数编译。

 var stringurl="http://"

 ConnectionManager.callGetMethod(url:stringurl,completion:{(responseData,errorMessage) in

    })

enter image description here  请建议我 ..  提前致谢

1 个答案:

答案 0 :(得分:1)

您的通话中有3个问题:

  1. 在您的完成块中,您没有包含元组
  2. 无需包含url(第一个参数标签)
  3. 您将callGetMethod声明为成员函数,并且您使用结构名称而不是它的对象来调用它。如果需要通过struct name调用它,请将其设为静态
  4. 将实施更改为:

    struct ConnectionManager
    {
       static func callGetMethod(url:NSString , completion:(responseData:AnyObject,errorMessage:NSError)->Void)
       {
       }
    }
    

    您需要将通话更改为:

    ConnectionManager.callGetMethod("", completion: { (responseData, errorMessage) -> Void in
    
    })
    

    问题还在于你