2014-01-09 3 views
-5

Я не могу открыть файл jpg из каталога документов. Файл существует, а не ноль, но когда я пытаюсь открыть его в UIImageView - ничего не происходит. Кто-нибудь может мне помочь?Открыть файл jpg в Obj-C

Пример кода:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                 NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *filename = [documentsDirectory stringByAppendingString:address]; 
UIImage *img =[[UIImage alloc] initWithContentsOfFile: filename]; 
[imgView setImage:img]; 

UPDATE Этот код прекрасно работает с PNG-файлов.

+3

Log путь к файлу и убедитесь, что он на самом деле существует. –

+0

Является ли 'imgView' в иерархии представлений или скрыт? Просто гадать. – lupz

+0

imgView - UIImageView в иерархии представлений – STBY

ответ

0
  1. Не использовать -[NSString stringByAppendingString:] при изменении пути к файлу. -[NSString stringByAppendingPathComponent:].

    NSString *filename = [documentsDirectory stringByAppendingPathComponent:address];

  2. Debug и проверьте имя файла (NSString *)address и ваш путь (NSString *)filename файла, являются ли они правильно.

+0

Я пробовал использовать stringByAppendingPathComponent, но без каких-либо результатов. Правильный путь к файлу - я тестировал его несколько раз – STBY

+0

Я просто сказал 'stringByAppendingPathComponent:' вместо этого. – klaudz

+0

извините. Я пробовал stringByAppendingPathComponent: слишком – STBY

0

Ваша проблема заключается в неправильном пути. что ваш неправильный путь:

var/mobile/Applications/<ID>/Documents2014-01-09--10:25:03.jpg 

и это было бы правильно путь:

var/mobile/Applications/<ID>/Documents/2014-01-09--10:25:03.jpg 

(пятно недостающего слэша между папкой и именем файла);


попробовать это один:

NSURL *_resourceURL = [[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject] URLByAppendingPathComponent:@"2014-01-09--10:25:03.jpg"]; 
UIImage *_image = [[UIImage alloc] initWithContentsOfFile:[_resourceURL path]]; 

(это было проверено на реальном только устройство!)

+0

Это не работает – STBY

+0

тестируют на реальном устройстве? можете ли вы мне написать «_image» ivar, пожалуйста? ('NSLog (@"% @ ", _image);') – holex

+0

Конечно. Вот журнал: STBY

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