在swift 2中调用和打印对象内部的对象

时间:2016-03-07 22:25:08

标签: ios swift2

我有2个类,我在AnimalClass中有cat对象,我正在解析jSON,我想从jSON初始化猫的名字

class AnimalClass: NSObject {

    var cats = [catClass]()
    ..... 
}

class catClass: NSObject {

var name : String = ""

init(data : NSDictionary)
{
    if let add = data["name"] as? String
    {
        self.name = add
    }

这里我试图在ViewController.swift中初始化它

    var animals = [AnimalClass]()
for(var i = 0; i < data_array.count; i++)
{
    if let add = data_array[i] as? NSDictionary
    {
      self.animals.append(AnimalClass(data: add)) // this works
      self.animals.cats.append(AnimalClass(data: add)) // this doesn't work
    }
}

我的问题是这行self.animals.cats.append(AnimalClass(data: add))如何附加到AnimalClass中的cat对象。

2 个答案:

答案 0 :(得分:0)

您无法将AnimalClass附加到猫身上,因为猫是catClass个对象的数组。你宣布它是这样的:

var cats = [catClass]()

这就是为什么下面的代码无法运行的原因。

self.animals.cats.append(AnimalClass(data: add))

所以你应该把它改成:

  self.animals.cats.append(catClass(data: add))

此外,Swift中的类名应以大写字母开头,我建议您将catClass重命名为Cat(同时删除Class后缀)

答案 1 :(得分:0)

您需要为您的猫类使用init。

更改行:

self.animals.cats.append(AnimalClass(data: add))

为:

self.animals.cats.append(CatClass(data: add))