2015-01-01 6 views
0

У меня функция: prepare(), которая возвращает NSMUtableArray. Когда я пытаюсь, чтобы возвращать json который NSMutableArray объект, я получаю следующее сообщение об ошибке:Функция Ошибка возврата в 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 

EDIT: Как @ Paulw11 упоминает, что вам нужно обрабатывать данные в вашем закрытии, вы не можете вернуть его из пр epare.

+0

Это не сработает, потому что закрытие будет выполняться асинхронно, поэтому возвращаемое значение изготовки будет недействительным. OP должен вызывать соответствующий метод обработки JSON изнутри закрытия. – Paulw11

+0

@ Paulw11 Можно ли сделать async: false? – tika

+0

Лучше закодировать так, чтобы асинхронные cals обрабатывались правильно. Программирование, управляемое событиями, является важной парадигмой в разработке приложений. – Paulw11

Смежные вопросы