2014-09-15 3 views
-1

У меня проблема с NSMutableArray.Почему мой NSMutableArray initWithContentsOfFile возвращает Null?

Когда я вхожу этот код:

cityObject = [citiesArray objectAtIndex:indexPath.row]; 
NSLog(@"%@", cityObject.cityName); 

Он регистрирует:

2014-09-15 11:12:55.599 JSONStoryboard[1865:707465] London 
2014-09-15 11:12:55.605 JSONStoryboard[1865:707465] Bombay 
2014-09-15 11:12:55.609 JSONStoryboard[1865:707465] Kuala Lumpur 
2014-09-15 11:12:55.612 JSONStoryboard[1865:707465] New York 
2014-09-15 11:12:55.615 JSONStoryboard[1865:707465] Berlin 
2014-09-15 11:12:55.618 JSONStoryboard[1865:707465] Duesseldorf 

Но когда я пытаюсь использовать initWithContentsOfFile здесь, он не регистрирует то, что я ожидал, что это:

self.namesArray = [[NSMutableArray alloc]initWithContentsOfFile:cityObject.cityName]; 
NSLog(@"%@", self.namesArray); 

Результатом этого является:

2014-09-15 11:16:26.241 JSONStoryboard[1875:708269] (null) 
2014-09-15 11:16:26.247 JSONStoryboard[1875:708269] (null) 
2014-09-15 11:16:26.250 JSONStoryboard[1875:708269] (null) 
2014-09-15 11:16:26.253 JSONStoryboard[1875:708269] (null) 
2014-09-15 11:16:26.256 JSONStoryboard[1875:708269] (null) 
2014-09-15 11:16:26.259 JSONStoryboard[1875:708269] (null) 

Когда я ожидал, что он зарегистрирует названия моих городов.

В чем проблема? Как добавить имена городов в namesArray?

ответ

0

Похоже, что у вас есть файлы на пути «Лондон», «Бомбей» и т. Д., Потому что это даже не допустимые пути. Поэтому initWithContentsOfFile вернет нуль.

Узнайте, где хранятся файлы и создаются пути к каждому файлу. Например

NSString* myDataDirectory = [self whereIStoreAllTheFiles]; 
NSString* cityPath = [myDataDirectory stringByAddingPathComponent:@"London"]; 
NSArray* cityData = [[NSArray alloc] initWithContentsOfFile:cityPath]; 

Код не проверен никоим образом.

+0

Города «Лондон», «Бомбей» и т. Д. - это разные строки, сохраненные на URL-адресе, я сохраняю их в строке, в данном случае называемой «citiesArray», после чего я читаю каждое название города в таблицеViewCell, используя: "cityObject = [citiesArray objectAtIndex: indexPath.row];". Показывая их по одному на ячейках, дело в том, что я хочу сохранить cityObject.cityName в новом массиве с именем namesArray. Как я могу это сделать? –

Смежные вопросы