我试图将一个对象数组声明为类中的属性,但是我收到一个错误:数组的元素类型不完整。
@property RoundObj *rounds[][];
答案 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*