目标C,创建类数组

时间:2010-11-16 14:24:26

标签: objective-c arrays class ios4 class-design

我有一个包含值的类:

@interface Params : NSObject {
  [...]
  NSString *fc;
  NSString *sp;
  NSString *x;
  NSString *y;
  [...]
  @property (nonatomic, assign) NSString *fc;
  @property (nonatomic, assign) NSString *sp;
  @property (nonatomic, assign) NSString *x;
  @property (nonatomic, assign) NSString *y;
  [...]
@end

可以在objective-c中创建一个类数组吗?比如c#/ java?

MyClass[] a = new MyClass[20] ???
a[0].fc = "asd" ?

或等同的东西?

感谢, 阿尔贝托

2 个答案:

答案 0 :(得分:2)

您可以使用标准NSArray来执行此操作,在我的示例中,我使用了视图,但您可以使用指向任何对象的指针。

    UIView * object = [[UIView alloc] init];
 UIView * object2 = [[UIView alloc] init];
 UIView * object3 = [[UIView alloc] init];

 NSArray * array = [[NSArray alloc] initWithObjects:object,object2,object3,nil];

[object release];[object2 release];[object3 release];//edit

 UIView * test = [array objectAtIndex:0];
 test.tag = 1337;

答案 1 :(得分:2)

虽然执行此操作的标准方法是使用NSArray,但您也可以使用C风格的数组执行此操作:

int numObjects = 42;
Params ** params = malloc(sizeof(Param*) * numObjects);
for (int i = 0; i < numObjects; ++i) {
  params[i] = [[[Params alloc] init] autorelease];
}

free(params);

但是,使用NSArray会更简单。 :)