Извлечение массива изображений из URL - PullRequest
1 голос
/ 29 декабря 2011

После некоторых исследований я немного растерялся. Я могу получить одно изображение из URL, если я знаю точный каталог, например,

UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL  URLWithString:@"http://www.myUrl.com/pic/workaholics.png"]]];
UIImageView *view1 = [[UIImageView alloc] initWithImage:image];
[self.view addSubview:view1];

Это грубо работает нормально, но что, если вы не знаете точный путь. В Linux вы всегда можете выполнить какой-то рекурсивный поиск, но с iOS я не могу понять это. Например, в каталоге «pic», который я указал в последнем случае, что, если бы были другие каталоги с именами pic1, pic2, pic3 и т. Д., И каждый каталог имел произвольное число png. Что мне не нравится, так это то, как я могу рекурсивно искать в каталоге «pic», чтобы извлечь все содержимое каталогов, которые соответствуют .png. Я бы грубо затем сохранил это NSData и конвертировал в строку, а затем сохранил содержимое в массиве. Я очень смущен в этом пункте. Любая помощь будет принята с благодарностью.

Ответы [ 3 ]

1 голос
/ 29 декабря 2011

Ваша трудность здесь будет заключаться в получении списка каталогов с веб-сервера - поскольку вы извлекаете изображения через Интернет. Многие веб-серверы не предоставляют список каталогов в качестве меры защиты от попыток взлома.

если вы управляете веб-сервером, вы можете перенастроить его для предоставления списка каталогов, а затем создать объект NSData из URL уровня каталога (http://www.myUrl.com/pic/)) и проанализировать его, чтобы извлечь все файлы в каталоге. затем запросите каждую отдельную картинку и добавьте ее в массив самостоятельно.

если вы не управляете веб-сервером, но можете писать в каталог, вы можете добиться аналогичной реализации, создав файл манифеста (XML-plist будет хорошим форматом), в котором перечислены имена файлов, содержащиеся в каталоге. Вам нужно будет обновлять манифест каждый раз, когда вы добавляете новое изображение в каталог.

в противном случае - вы должны сделать несколько довольно грязных / хакерских вещей, например, если предположить, что не более n изображений, все изображения имеют имя файла "pic_m.png", а затем повторять цикл от 0 до n, пытаясь получить каждое из них. файл, пока вы не столкнулись с ошибкой.

0 голосов
/ 29 декабря 2011
NSURL *url = [NSURL 
URLWithString:@”www.ArticleDean.com\images\sample.jpg”];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *image = [[UIImage alloc] intiWithData:data]; 

попробуйте это

0 голосов
/ 29 декабря 2011

UIImage нужна явная вещь (URL или путь к файлу) для получения своих данных.

Одним из возможных решений является реализация поиска ваших файлов .png через NSFileManager enumeratorAtPath:метод.Справочное руководство, на которое я ссылался, даже содержит фрагмент кода, который вы можете использовать для создания UIImages (просто переключите @"doc" на @png и вместо scanDocument сделайте вашу вещь UIImage * image = ...).

Я оставлю это в качестве упражнения, чтобы выяснить, как сделать это рекурсивно, но я надеюсь, что мой ответ поможет вам!

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