Тип массива 'int [16]' не присваивается
Я разрабатываю приложение iOS с последним SDK.
Я хочу сделать это на :
@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
как я могу исправить эту ошибку?
2 ответов
Если вы просто хотите инициализировать массив:
int _cars[16] = {0};
безопасно отбросить лишние нули, компилятор их вычислит. Невозможно назначить целые массивы в C, поэтому компилятор жалуется в вашем случае. Инициализировать их можно только, и назначение считается инициализацией только тогда, когда это сделано как часть объявления.
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};
массивы не являются назначаемыми lvalues.