2010-09-06 3 views
1

если я поместил файл image.png в свой ресурс, iphone сможет его прочитать. если я помещаю файл image.png в папку документа iphone, он не читается?чтение изображения из папки с документами

Я отправляю изображение с моего сервера в папку документа. нет проблем с этим.

Я думал, что iphone автоматически найдет файл изображения в папке с ресурсами или в папке с документами?

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

любые идеи?

Thks

// Get path to doc folder 
NSArray *docpaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [docpaths objectAtIndex:0]; 
NSString *docpath = [documentsDirectory stringByAppendingPathComponent:@"Data.plist"];  
self.data = [NSArray arrayWithContentsOfFile:docpath]; 

сделать загрузку PLIST из папки док.

Теперь я иду в plist, получаю имя файла и дисплей для ячейки.

NSDictionary *dataItem = [data objectAtIndex:indexPath.row]; 
cell.icon = [UIImage imageNamed:[dataItem objectForKey:@"Icon"]]; 

Как я могу указать изображение в папке моего документа?

+0

Если вы пытаетесь иметь iPhone автоматически найти изображение для использования в качестве значка домашней страницы/закладки, поместить изображение в корне документа с именем 'яблочного сенсорным icon.png' или 'яблоко-сенсорный значок-precomposed.png'. Если это изображение для использования на самой веб-странице, пожалуйста, покажите свой код. –

+0

Я использую изображение как значок, для ячейки таблицы. загрузка из папки ресурсов в порядке. странно, 1 удается обновить изображение 1 раз, чем это. Я удаляю все изображения в папке с документами, отправленные снова, это не работает. для добавления, мое имя файла изображения помещается в plist как строка. plist отправляется с сервера вместе с изображением. я проверил, все файлы правильно получены. – Stefan

ответ

5

Вы можете создать UIImage из файла с помощью imageWithContentsOfFile. Однако вы не можете прочитать файл, просто указав имя, если оно находится в папке с документами. Вам нужно получить путь к файлу. Проверьте this answer, чтобы узнать, как получить путь к файлу в папке с документами.

- Редактировать
Если ваш plist содержит имена файлов в папке документа, добавьте имена файлов из plist, чтобы указать путь к папке документа, чтобы получить полный путь. Надеюсь, поможет.

 
NSArray *docpaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [docpaths objectAtIndex:0]; 
NSDictionary *dataItem = [data objectAtIndex:indexPath.row]; 
NSString *imagePath = [documentsDirectory stringByAppendingPathComponent:[dataItem objectForKey:@"Icon"]]; 
cell.icon = [UIImage imageWithContentsOfFile:imagePath]; 
+0

hm .. Я не могу записать точное имя файла внутри моего кода при его изменении. любое предложение? – Stefan

+0

, когда вы пишете файл в папке с документами после его получения с сервера, вы, очевидно, знаете это имя. правильно? u нужно сохранить имя где-нибудь (может быть в переменной), а затем использовать его. – taskinoor

+0

Проверьте изменения. – taskinoor