Получить числовое значение без ошибки «Подстрочный индекс требует размера интерфейса« NSArray », который не является постоянным в нестабильном ABI» - PullRequest
1 голос
/ 26 февраля 2012

Если у меня есть NSArray, и я хочу получить каждое из чисел, есть ли простой способ сделать это?

Я попробовал совет от http://code.flamingleaf.com/category/objective-c/ вместо этого (метод, используемый в других языках программирования для индексов в массивах):

SomeArray [я]

* * 1010

использовать

[someArray objectAtIndex: i];

Есть ли способ получить числовое значение?

Я получаю сообщение об ошибке типа: «Подстрочный индекс требует размера интерфейса« NSArray », который не является постоянным в нестабильном ABI»

Спасибо за предложение Курта Ревиса ввести реальный код. Я не смог воссоздать проблему. Но это мое самое близкое:

      for (int i=0; i<4; i++)
            NSLog(@"%i",[[temp objectAtIndex: i]length]);
        for (int i=0; i<4; i++)
            tempNumbers[i]=[[temp objectAtIndex:i] length];
        for (int i=0; i<4; i++)
            NSLog(@"The count at i=%i is %i", i, tempNumbers[i]);

и это сработало как:

3   
3   
5   
2   
 the value of i = 0 and tempNumbers[i]=3.000000  
 the value of i = 1 and tempNumbers[i]=3.000000  
 the value of i = 2 and tempNumbers[i]=5.000000  
 the value of i = 3 and tempNumbers[i]=2.000000       

Заключение: Пока я не смогу написать простой код для воссоздания проблемы, я не буду засорять эту область вопросов.

2-й вывод: я попробую решение, предложенное edc1591.

1 Ответ

1 голос
/ 27 февраля 2012

Трудно сказать, не видя, к какому классу относятся объекты, но если они имеют тип NSString или NSNumber, вы можете использовать любой из следующих методов, чтобы получить числовое значение:

[[someArray objectAtIndex:i] floatValue];
[[someArray objectAtIndex:i] doubleValue];
[[someArray objectAtIndex:i] intValue];
[[someArray objectAtIndex:i] unsignedIntValue];

и т.д ...

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