类中2维对象数组

时间:2014-12-30 21:40:38

标签: objective-c

我试图将一个对象数组声明为类中的属性,但是我收到一个错误:数组的元素类型不完整。

@property RoundObj *rounds[][];

3 个答案:

答案 0 :(得分:1)

你不能以这种方式声明二维数组。

你应该声明它:

@property RoundObj __autoreleasing **rounds; // Dynamic

但我建议使用NSMutableArray而不是这样做。您可以将另一个NSMutableArray添加到另一个,并可以实现像机制一样的二维数组。这是更好的方式。

答案 1 :(得分:1)

您需要使用它的容量声明您的数组。您还需要将其设置为实例变量而不是属性

@interface MyClass ()
{
    RoundObj *rounds[9][9];
}

@property (nonatomic, strong) NSString *someUnrelatedString;

@end

或者,您可以将NSMutableArray嵌套在更多数组中

@property (nonatomic, strong) NSMutableArray *arr;
...
_arr = [[NSMutableArray alloc] init];

for (int i = 0; i < 10; i ++)
{
     NSMutableArray *newArr = [[NSMutableArray alloc] init];
     [arr addObject:newArr];
 }

答案 2 :(得分:0)

使用NSArrays不会强制执行特定类型,但可以按惯例用于创建多维数组 。我使用注释来表明预期的结构是什么。

@property (nonatomic, strong) NSArray *rounds; //of NSArray* of RoundObj*