Objective c 类中对象的二维数组

Objective c 类中对象的二维数组,objective-c,Objective C,我试图将对象的2d数组声明为类中的属性,但收到一个错误:数组的元素类型不完整 @property RoundObj *rounds[][]; 不能用这种方式声明二维数组 您应该这样声明: @property RoundObj __autoreleasing **rounds; // Dynamic 但与其这样做,我建议使用NSMutableArray。您可以在另一个NSMutableArray中添加另一个NSMutableArray,并可以实现类似于二维数组的机制。这是一种更好的方法。您需要

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

@property RoundObj *rounds[][];

不能用这种方式声明二维数组

您应该这样声明:

@property RoundObj __autoreleasing **rounds; // Dynamic

但与其这样做,我建议使用NSMutableArray。您可以在另一个NSMutableArray中添加另一个NSMutableArray,并可以实现类似于二维数组的机制。这是一种更好的方法。

您需要声明阵列的容量。您还需要将其设置为实例变量而不是属性

@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];
 }

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

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

提供指向非常量类型“RoundObj*”的错误指针,但没有显式ownership@TarekMowafy:忘记添加自动删除。现在检查,但容量是动态的检查我的更新答案。您的RoundObj将进入每个newArr