iOS 中的函数返回错误
Function Return Error in iOS
我有以下函数:prepare()
返回 NSMUtableArray
。当我尝试返回一个 json
这是 NSMutableArray
对象时,我收到以下错误:
'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 [""]
}
问题是您正试图从定义为 returning Void 的闭包中 return json:
(response, data, connectionError) -> Void
编辑:正如@Paulw11 提到的,您需要在闭包中处理数据,您不能从准备函数中return它。
我有以下函数:prepare()
返回 NSMUtableArray
。当我尝试返回一个 json
这是 NSMutableArray
对象时,我收到以下错误:
'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 [""]
}
问题是您正试图从定义为 returning Void 的闭包中 return json:
(response, data, connectionError) -> Void
编辑:正如@Paulw11 提到的,您需要在闭包中处理数据,您不能从准备函数中return它。