添加数组对象不初始化
问题描述:
我有一个方法,从JSON初始化我的类对象。这样的方法:添加数组对象不初始化
func getList (dic : Array<[String:AnyObject]>) -> Array<Dog> {
let dogs : NSMutableArray = NSMutableArray()
for myDic in dic {
let dog = Dog.init(dog: myDic)
dogs.addObject(dog)
}
return NSArray(dogs) as! Array<Dog>
}
而且我可以在没有问题的情况下在tableview上显示它。但现在我想为列表分页。如果我再次运行getList方法,它将是init新对象并替换我的旧对象。我如何添加一个新的对象到现有。我不想用相同的属性创建单独的对象。
答
您需要添加一个您将追加到的成员变量。所以:
var dogs: [Dog] = []
然后调用getList
这样的:
dogs += getList(dic: myDic)
顺便说一句,你可以让你的getList
方法要简单得多,就像这样:
func getList(dic: [[String: AnyObject]]) -> [Dog] {
return dic.map(Dog.init)
}
只是用斯威夫特阵列,在Swift中不再需要基础设施集合。使用一个数组作为输入,然后使用一个NSMutableArray然后再次转换为数组是没有意义的。 – Moritz