将数组追加到多维数组

时间:2015-04-15 09:21:29

标签: ios arrays swift

我创建了一个multidimensinal数组,假设持有不同的新闻部分,例如热门和最新新闻。因此,我创建了一个像这样的数组,其中新闻是我的班级。

 var arrayNews = Array<Array<News>>()

在此之后我循环浏览我的第一个JSON文件

    for (key: String, subJson: JSON) in jsonArray {
        // Create an object and parse your JSON one by one to append it to your array
        var newNewsObject = News(id: subJson["id"].intValue, title: subJson["title"].stringValue, link: subJson["url"].stringValue, imageLink: subJson["image_url"].stringValue, summary: subJson["news_text"].stringValue, date: subJson["date"].stringValue)


        arrayNews.append(newNewsObject)
    }

但是当我尝试将它附加到数组时,我遇到了以下错误?

cannot invoke append with an argument list of type (News)

测试答案

var arrayNews = Array<Array<News>>()
let recentArray = [News]()

    for (key: String, subJson: JSON) in jsonArray {
        // Create an object and parse your JSON one by one to append it to your array
        var newNewsObject = News(id: subJson["id"].intValue, title: subJson["title"].stringValue, link: subJson["url"].stringValue, imageLink: subJson["image_url"].stringValue, summary: subJson["news_text"].stringValue, date: subJson["date"].stringValue)


        recentArray.append(newNewsObject)
    }

    arrayNews.append(recentArray)

错误消息

immutable value of '[(News)] only has mutating members named append

2 个答案:

答案 0 :(得分:5)

使用

var arrayNews = Array<Array<News>>()

你声明你将拥有一个数组数组。

然后你追加一个News对象的新实例,它不是一个数组。

因此,您应该将arrayNews变量更改为News个对象的数组:

var arrayNews = [News]()

答案 1 :(得分:4)

arrayNews需要Array个元素,但您为其提供了News元素。

您可以使用以下创建当前剖面阵列,然后将其添加到多维数组中:

let sectionArray = [News]()
sectionArray.append(newNewsObject)
arrayNews.append(sectionArray)