Objective c 关于某个类的NSMutableArray的问题

Objective c 关于某个类的NSMutableArray的问题,objective-c,nsmutablearray,nsarray,Objective C,Nsmutablearray,Nsarray,基本上,我有一个NSMutableArray,它是这样设置的,数组元素是另一个类的实例 [[NSMutableArray alloc] initWithObjects: [[Shape alloc] init], [[Shape alloc] init], nil]; 每个形状类都有一个实例变量,用于保存它的形状类型。我希望能够创建这个数组,以便它为实例变量赋值,类似这样,其中ShapeVariable是Shape类中的实例变量,Square/Circle是我希望它具有的值 [[NSMutab

基本上,我有一个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];

另外,我想知道如何将两个实例变量同时分配给同一个元素。

developer tools安装包括一个名为Sketch的示例。它基本上完全符合您的要求,并且由开发Cocoa框架的团队在每个OS版本中进行仔细审查,以确保它遵循“最现代”的规则和API

不管你的最终目标是否是针对iPhone,从这个例子开始可能会被证明是非常有用的


你可以在/Developer/Examples/Sketch/

中找到它,它闻起来太难闻了。。。。另外,您正在泄漏每个
形状
对象。那么,我想知道如何以另一种方式进行泄漏,这样它就不会“闻起来很糟糕”。正确的方法是确保每个形状对象在进入数组之前都已完全初始化。或者,如果需要更改形状对象的状态,请检索指向该对象的指针(
[array objectAtIndex:42]
),然后直接操纵形状。绝对不要使用数组为您直接操作对象。数组只是一个容器,仅此而已。@Dave Delong好吧,那么这样做怎么样:
shape1=[[Shape alloc]init]
然后对Shape 2做同样的事情,然后我可以在Shape类中有一个方法来更改ShapeVariable,调用它,然后将它们放入数组中。然而,这似乎有点低效,有没有其他的方法呢?