2016-03-07 66 views
4

内部对象打印对象我有2个班,我有猫在AnimalClass对象和我解析JSON和我想从JSON呼叫和斯威夫特2

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

我的问题是这个李ne self.animals.cats.append(AnimalClass(data: add))如何追加到动物类中的猫物体。

回答

0

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

var cats = [catClass]() 

这就是为什么下面的代码将无法正常工作。

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

所以,你应该将其更改为:

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

此外,雨燕类名称应该以大写字母开头,我建议你重命名catClassCat(也丢弃Class后缀)

+0

谢谢,但我怎么可以追加猫反对呢?我需要在AnimalClass – tmac99

+0

上追加猫对象,我更新了答案。试试吧 – RaffAl

+0

我试过了,但现在它说:'[动物]'类型的值没有成员'猫'。但是,我在Animals类中创建了猫对象。我不明白为什么这么说。 – tmac99

0

你需要为你的猫课使用init。

更改的行:

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

到:

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

谢谢,但现在它说:'[动物]类型的价值没有记忆'猫' – tmac99

+0

提供一个答案,这是我的复制和粘贴的问题是什么?正如我在我的回答中所建议的,你甚至大写了'catClass'。我真的很感谢你投票,告诉你它是怎么样的。 – RaffAl

+0

@Bearwithme - 我已经写完了我的答案,然后注意到你写了一个明显的解决方案。 –