Swift - 附加到数组中的数组
Swift - append to array that is in an array
我正在写一个class那个returnsJSON的数据。我创建了一个 NSArray 类型的数组。我向这个数组添加了 String 类型的数组。
稍后我想将字符串附加到 NSArray 类型数组中的字符串类型数组。
然而它不允许这样做,我不知道为什么,因为追加函数在将 NSArrays 追加到主数组时确实有效。
这是整个class:
import Foundation
class JSON {
struct Static {
let hostname = "http://192.168.2.115:8888/tcn/";
func getJSON(script:String, jsonMainElement:String, elements:[String]) -> [NSArray] {
var returnObject = [NSArray]()
let urlAsString = hostname + script;
let url = NSURL(string: urlAsString)!
let urlSession = NSURLSession.sharedSession()
let jsonQuery = urlSession.dataTaskWithURL(url, completionHandler: { data, response, error -> Void in
if (error != nil) {
println(error.localizedDescription);
}
var err: NSError?
var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSDictionary
if (err != nil) {
println("JSON Error \(err!.localizedDescription)");
}
var i = 0;
let arrayFromJson: [[String:String]] = jsonResult[jsonMainElement] as [[String:String]]
dispatch_async(dispatch_get_main_queue(), {
for item in arrayFromJson {
returnObject.append([String]());
for jsonObject in elements {
returnObject[i].append(item[jsonObject]!);
// ^ THIS LINE GIVES ERROR
}
i++;
}
if (arrayFromJson.count > 0) {
//k
}
})
})
jsonQuery.resume()
return returnObject;
}
}
}
您可能需要将数组定义为包含可变数组,如下所示。
var returnObject = [NSMutableArray]()
您也可以使用 Swift 'sub' 数组,并像这样定义它。
var returnObject = Array<Array<String>>()
别忘了更新您的 return 方法。
func getJSON() -> Array<Array<String>>
我正在写一个class那个returnsJSON的数据。我创建了一个 NSArray 类型的数组。我向这个数组添加了 String 类型的数组。
稍后我想将字符串附加到 NSArray 类型数组中的字符串类型数组。
然而它不允许这样做,我不知道为什么,因为追加函数在将 NSArrays 追加到主数组时确实有效。
这是整个class:
import Foundation
class JSON {
struct Static {
let hostname = "http://192.168.2.115:8888/tcn/";
func getJSON(script:String, jsonMainElement:String, elements:[String]) -> [NSArray] {
var returnObject = [NSArray]()
let urlAsString = hostname + script;
let url = NSURL(string: urlAsString)!
let urlSession = NSURLSession.sharedSession()
let jsonQuery = urlSession.dataTaskWithURL(url, completionHandler: { data, response, error -> Void in
if (error != nil) {
println(error.localizedDescription);
}
var err: NSError?
var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSDictionary
if (err != nil) {
println("JSON Error \(err!.localizedDescription)");
}
var i = 0;
let arrayFromJson: [[String:String]] = jsonResult[jsonMainElement] as [[String:String]]
dispatch_async(dispatch_get_main_queue(), {
for item in arrayFromJson {
returnObject.append([String]());
for jsonObject in elements {
returnObject[i].append(item[jsonObject]!);
// ^ THIS LINE GIVES ERROR
}
i++;
}
if (arrayFromJson.count > 0) {
//k
}
})
})
jsonQuery.resume()
return returnObject;
}
}
}
您可能需要将数组定义为包含可变数组,如下所示。
var returnObject = [NSMutableArray]()
您也可以使用 Swift 'sub' 数组,并像这样定义它。
var returnObject = Array<Array<String>>()
别忘了更新您的 return 方法。
func getJSON() -> Array<Array<String>>