2015-10-28 12 views
11

Xcode 7'ye yükseltti ve API çağrıları yönetmek için Alamofire kullanıyorum ve bu hatayı alıyorum belirtildi: kapatma argüman listesi içinBağlamsal tip 1 argümanlar bekler, ancak 4

'Bağlamsal tip bekliyor ancak 4 'belirtilen şu kodu için

edildi 1 argüman:

Alamofire.request(.POST, urlString, parameters: parameters).responseJSON { (_, _, data, _) -> Void in 
: hatası aşağıdaki satıra başvurduğu

static func loginWithEmail(email: String, password: String, response: (token: String?) ->()) { 
    let urlString = baseURL + ResourcePath.login.description 
    let parameters = [ 
     "email": email, 
     "password": password 
    ] 
    Alamofire.request(.POST, urlString, parameters: parameters).responseJSON { (_, _, data, _) -> Void in 
     let json = JSON(data!) 
     let token = json["token"].string 
     response(token: token) 
    } 
} 

Hızlı bir şekilde kapatmaya yeni başlıyorum ve geçerli olması için değerleri yuva yapmam gerekip gerekmediğini bilmiyorum.

Yardımı çok takdir edilmektedir.

+1

sen [Alamofire 3,0 Geçiş Kılavuzu] (bir göz mü https://github.com/Alamofire/Alamofire/blob/master/Documentation/Alamofire%203.0%20Migration%: Nihai kodu şöyle 20Guide.md), özellikle "API Değişikliklerini Sonlandırma" bölümü? –

cevap

9

Kapatma, < AnyObject, NSError> türünde tek bir parametre alır; böylece kodunuz buna daha çok benzemelidir.

Alamofire.request(.POST, urlString, parameters: parameters).responseJSON { response in 
    let json = JSON(response.data!) 
    let token = json["token"].string 
    response(token: token) 
} 
+0

Çok teşekkürler Chris Gulley, bu benim sorunumu çözdü. –

+0

Tamamlama işleyicisi ne olacak? – user805981

2

Yardımın için teşekkürler, bu, ilk kez burada soruyordu ve yararlı ve cesaret vericiydi.

static func loginWithEmail(email: String, password: String, func_response: (token: String?) ->()) { 
    let urlString = baseURL + ResourcePath.login.description 
    let parameters = [ 
     "email": email, 
     "password": password 
    ] 
    Alamofire.request(.POST, urlString, parameters: parameters).responseJSON { response in 
     if response.result.isSuccess { 
      let json = JSON(response.result.value!) 
      let token = json["token"].string 
      func_response(token: token) 
     } 
    }