2016-11-10 157 views
0

我有一個方法,從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新對象並替換我的舊對象。我如何添加一個新的對象到現有。我不想用相同的屬性創建單獨的對象。

+1

只是用斯威夫特陣列,在Swift中不再需要基礎設施集合。使用一個數組作爲輸入,然後使用一個NSMutableArray然後再次轉換爲數組是沒有意義的。 – Moritz

回答

1

您需要添加一個您將追加到的成員變量。所以:

var dogs: [Dog] = [] 

然後調用getList這樣的:

dogs += getList(dic: myDic) 

順便說一句,你可以讓你的getList方法要簡單得多,就像這樣:

func getList(dic: [[String: AnyObject]]) -> [Dog] { 
    return dic.map(Dog.init) 
} 
+0

很好的答案。但是可能'AnyObject'應該成爲'Any'(爲了包含'String(s)','Int(s)'和其他結構而不需要手工投射) –

+0

AnyObject'在原始問題中定義。我們不知道'Dog'初始值設定項是否需要一個AnyObject類型的字典。 – ganzogo

+0

但我同意你*可能*正確;-) – ganzogo