2015-01-01 76 views
0

我有以下功能:prepare()其中返回NSMUtableArray。當我嘗試,返回一個jsonNSMutableArray對象,我得到以下錯誤:iOS中的函數返回錯誤

'NSMutableArray' is not convertible to 'Void' 

功能的源代碼:

func prepare() -> NSMutableArray { 

    let statusesShowEndpoint = "https://api.twitter.com/1.1/statuses/user_timeline.json" 
    let params = ["screen_name": "tikaDotMe"] 
    var clientError : NSError? 

    let request = Twitter.sharedInstance().APIClient.URLRequestWithMethod(
     "GET", URL: statusesShowEndpoint, parameters: params, 
     error: &clientError) 

    if request != nil { 
     Twitter.sharedInstance().APIClient.sendTwitterRequest(request) { 
      (response, data, connectionError) -> Void in 
      if (connectionError == nil) { 
       var jsonError : NSError? 


       let json = NSJSONSerialization.JSONObjectWithData(data, 
        options: nil, 
        error: &jsonError) as NSMutableArray 
      //Error: 'NSMutableArray' is not convertible to 'Void' 
       return json 



      } 
      else { 
       println("Error: \(connectionError)") 
      } 
     } 
    } 
    else { 
     println("Error: \(clientError)") 
    } 
    return [""] 
} 
+0

您正在使用哪種版本的XCode? – user3581203

+0

@ user3581203版本6.1.1(6A2008a) – tika

回答

2

的問題是,你正試圖從一個封閉返回JSON它被定義爲返回一個空:

(response, data, connectionError) -> Void 

編輯:由於@ Paulw11提到,你需要處理在封閉的數據,你不能從你的PR寄回epare功能。

+0

這將不起作用,因爲閉包將被異步執行,所以prepare的返回值將無效。 OP需要調用適當的方法來處理閉包內的JSON。 – Paulw11

+0

@ Paulw11是否有可能使async:false? – tika

+0

最好編寫代碼以便正確處理異步cals。事件驅動的編程是應用程序開發中的一個重要範例。 – Paulw11