2016-12-04 50 views
-2

我正試圖使用​​google書籍API獲取書籍詳細信息。出錯時,代碼會調用回調方法,但它不會被調用。快速回撥不起作用

代碼禮貌的Git樞紐例如項目通過 - 尼古拉斯·艾迪生

import Alamofire 
import SwiftyJSON 

class BooksManager 
{ 
    static let sharedInstance = BooksManager() 

    func getBook(_ isbn: String, callback: @escaping (_ error: NSError?, _ book: Book?)->()) 
    { 
     Alamofire.request(
      GoogleBookRouter.searchByISBN(isbn: isbn)) 
      .responseJSON 
      { 
       response in 

       if let error = response.result.error 
       { 
        logger.debug("Failed to call Google Books API: " + error.localizedDescription) 

        //FIXME:- wrap Alamofire error before returning 
        callback(error as NSError?, nil) 
        return 
       } 
      } 
} 
+0

你嘗試添加一個斷點,並檢查錯誤? – Wain

+0

這是Swift 3嗎?如果是,則刪除完成處理程序中的所有參數標籤。 '(NSError?,Book?) - >()'。 – vadian

+0

@vadian謝謝你。您的解決方案奏效萬分感激。如果你回答,我會接受它。 – ashishn

回答

1

在斯威夫特3關閉所有的參數標籤已經被移除,所以乾脆寫

func getBook(_ isbn: String, callback: @escaping (NSError?, Book?) ->()) ... 
+0

謝謝。我想知道爲什麼有人低估了我的問題! – ashishn