Записать содержимое NSURL в массив

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

NSURL *getURL=[NSURL URLWithString:@"link.php"];
NSError *error=nil;
NSString *str=[NSString stringWithContentsofURL:getURL encoding:NSUTF8StringEncoding error:&error];
NSLog(@"%",str);

Это печатает в журнал три значения из моего php, как и ожидалось.

Однако у меня возникли небольшие трудности с сохранением этого в массиве, который затем отображает эти значения в UISplitviewController (левая сторона контроллера).

который написан так

showArray=[[NSMutableArray alloc]initWithContentofURL:getURL];

затем в cellForRowAtIndexPath: метод

cell.textLabel.text=[showArray object atIndex:indexPath.row];

Второе, что я попробовал, это записать myURL в массив и попытаться инициализировать showArray с помощью ContentsofArray как это

NSArray *retults=[NSArray arraywithContentsOFURL:getURL];
showArray=[[NSArray alloc]initWithArray:retults];

но это не работает, но если я скажу

showArray=[[NSMutableArray alloc]initWithObjects:@"One",@"Two",nil];

Один и два шоу в моем левом контроллере.... Хотелось бы, чтобы кто-то мог помочь мне с этим... Спасибо

2 ответа

Решение

Вы отлично сделали веб-сервисы, теперь вам нужно разобрать его в массиве.
Сначала загрузите файлы SBJSON по этой ссылке

https://github.com/stig/json-framework/

Затем скопируйте их в свою рабочую область. Затем в viewController добавить это

#import "SBJson.h"  

Ваши данные JSON содержат значения в виде словаря

ТАК, чтобы разобрать их

 SBJsonParser * parser=[SBJsonParser new];
 NSDictionary * jsonData=(NSDictionary *)[parser objectWithString:outputData];
 NSArray * arr=(NSArray *)[NSDictionary objectForKey:@"animal"];

Я думаю это поможет

Вы пытаетесь добавить содержимое URL или сам URL?

Если вы пытаетесь просто добавить URL, используйте:

showArray = [@[getURL] mutableCopy];

Однако, если вы пытаетесь добавить содержимое URL-адреса, в документе четко указано, что URL-адрес должен представлять строковое представление массива.

Более того:

Возвращает nil, если местоположение не может быть открыто или если содержимое местоположения не может быть проанализировано в массив.

РЕДАКТИРОВАТЬ:

Я видел ваш комментарий к вашему сообщению, и ваши данные выглядят как данные JSON. Вы должны взглянуть на NSJSONSerialisation класс, который довольно прост в использовании (вы найдете много примеров здесь на SO).

Другие вопросы по тегам