Записать содержимое 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).