我正在使用最新的SDK开发iOS应用程序。
我想在.mm
文件上执行此操作:
@interface MyClass ()
{
int _cars[16];
...
}
@end
@implementation MyClass
-(id)init
{
self = [super init];
if (self)
{
_cars = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
}
...
}
但是我收到以下错误:
Array type 'int [16]' is not assignable
如何解决此错误?
答案 0 :(得分:8)
在这种情况下,Objective-C ++与C,Objective-C或C ++没有什么不同。您必须在声明数组时初始化数组:
int _cars[16] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
数组不是可分配的左值。
答案 1 :(得分:7)
如果您只想初始化数组:
int _cars[16] = {0};
删除额外的零是安全的,编译器会将它们弄清楚。在C中分配整个数组是不可能的,这就是编译器在你的情况下抱怨的原因。它只能初始化它们,并且当作为声明的一部分完成时,赋值仅被认为是初始化。