При обращении к моему NSMutableArray я получаю сообщение об ошибке типа «Невозможно инициализировать переменную типа« int »с помощью значения r типа« id »» - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть следующая функция, и я изо всех сил пытаюсь получить значение у в виде целого числа.

+ (NSMutableArray *) cleanPoints:(NSMutableArray *)pointsArray{

NSMutableArray *mutableArray = [NSMutableArray array];

for(int i = 0; i<pointsArray.count-1; i++){

    CLog(@"pointsArray %@", pointsArray[i]);   /// here it gives me the correct number, like 345

    int y = (int)pointsArray[i];    //// here seems to be the problem
    CLog(@"y = %d", y);     ///// y is a weird number, like y = 384643392

    if (y < 4 || y > -4){
        y = 0;
    }

    //create Array
    [mutableArray addObject:@(y)];

    }
    return mutableArray;
}

Если я вычитаю (int) из строки int y = (int) pointsArray [I], то получаю ошибку "Невозможно инициализировать переменную типа 'int' значением r типа 'id'

1 Ответ

0 голосов
/ 14 ноября 2018

Эта строка не имеет смысла:

int y = (int)pointsArray[i];

Невозможно, чтобы NSArray содержал int значений.Он может содержать только объектов , а в Objective-C int не является объектом.

Возможно, вы имеете в виду

int y = [pointsArray[i] intValue];

(но я просто предполагаю, что этот NSArray содержит объекты NSNumber; у меня нет способа узнать, так как вы не дали никакой информации об этом)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...