【问题标题】:Swift - append to array that is in an arraySwift - 附加到数组中的数组
【发布时间】:2015-06-14 15:25:34
【问题描述】:

我正在编写一个返回 JSON 数据的类。我创建了一个 NSArray 类型的数组。我向这个数组添加了字符串类型的数组。

我稍后想将字符串附加到 NSArray 类型数组中的 String 类型数组。

但是它不允许这样做,我不知道为什么,因为 append 函数在将 NSArrays 附加到主数组时确实有效。

这是整个班级:

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;
        }
    }


}

【问题讨论】:

  • 它会给你什么错误?
  • 对不起,我忘了提到错误。它是:“找不到成员‘追加’”
  • 你可以将returnObject的声明改为[[AnyObjet]](),那么它就是一个带有append方法的Swift数组。

标签: ios arrays json swift append


【解决方案1】:

您可能需要将数组定义为包含可变数组,如下所示。

var returnObject = [NSMutableArray]()

您也可以使用 Swift 的“子”数组,并像这样定义它。

var returnObject = Array<Array<String>>()

别忘了更新你的回报方法。

func getJSON() -> Array<Array<String>>

【讨论】:

    猜你喜欢
    • 2018-05-16
    • 1970-01-01
    • 2016-01-15
    • 2021-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多