2013-08-02 3 views
0

У меня есть массив, и его содержимое является объектами типа id, но мне нужно включить их в тип in t. Есть ли способ заставить массив читать данные как int s, или повернуть id в int?Как вы конвертируете int в id?

NSArray *array = [string componentsSeparatedByString:@"\n"]; 

    int foo = array[0]; /*Warning: Incompatible pointer to integer conversion initializing 'int' with an expression of type 'id' */ 

ответ

4

componentsSeparatedByString: документы говорит:

Возвращаемое значение

NSArray объект, содержащий подстроки из приемника, которые были разделены сепаратором.

Значит, ваш fileContents содержит массив NSStrings. fileContents[0] является первым экземпляром NSString в массиве. И вы можете конвертировать NSString в int или предпочтительно NSInteger по телефону

[string intValue]; 
[string integerValue]; 

Так что ваш код должен выглядеть следующим образом (предполагается, что массив содержит, по меньшей мере, 1 объект, не забудьте проверить это):

int object1 = [fileContents[0] intValue]; 

Или даже лучше включить приведение типов для лучшего считывания кода

int object1 = [(NSString *)fileContents[0] intValue]; 
2

Вы должны использовать intValue для преобразования в int.

int object1 = [fileContents[0] intValue]; 
Смежные вопросы