2010-09-11 50 views
0

基本上我有一個NSMutableArray像這樣設置,另一個類的實例作爲數組元素。關於某個類的NSMutableArray的問題

[[NSMutableArray alloc] initWithObjects: [[Shape alloc] init], [[Shape alloc] init], nil]; 

每個形狀類都有一個實例變量,它保存着它的形狀。我希望能夠製作這個數組,以便它爲實例變量賦值,像這樣,其中ShapeVariable是Shape類中的實例變量,Square/Circle是我希望它具有的值。

[[NSMutableArray alloc] initWithObjects: [[Shape alloc] initwith ShapeVariable Square], [[Shape alloc] initwith ShapeVariable Circle], nil]; 

此外,我想知道如何將兩個實例變量同時分配給相同的元素。

+2

這個味道太糟糕了......另外,你正在泄漏每一個'Shape'對象。 – 2010-09-11 04:45:31

+0

那麼,我想知道如何做到另一種方式,所以它不「聞到soooo壞」 – Regan 2010-09-11 14:26:28

+0

正確的方法是確保每個Shape對象在它進入之前完全初始化陣列。或者,如果您需要更改Shape對象的狀態,請檢索指向該對象的指針('[array objectAtIndex:42]'),然後直接操作Shape。絕對*不要*使用數組直接爲你操作對象。一個數組*僅僅是一個容器*,僅此而已。 – 2010-09-11 17:05:12

回答

1

開發人員工具安裝包括一個名爲Sketch的示例。它基本上完全符合你的需求,並且由每個版本的操作系統開發Cocoa框架的團隊進行非常仔細的審查,以確保它遵循「最現代化」的規則和API。

無論您的最終目標是針對iPhone,從這個例子開始可能會證明是非常有用的。

你會發現它在/開發人員/示例/素描/