iOS: загрузка изображения из файла plist

Я пытаюсь показать различные изображения из файла plist в UIImageView, я написал свой код так:

NSDictionary *picturesDictionary = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Photos" ofType:@"plist"]];    
    imageArray = [picturesDictionary objectForKey:@"PhotosArray"];
    PhotosInAlbum.image = [UIImage imageWithContentsOfFile:[imageArray objectAtIndex:1]];

Но на самом деле ничего не происходит, и мой ImageView пуст! Также у меня есть две кнопки для перемотки назад изображений.

Содержание Plist: enter image description here

 Mc.Lover01 июн. 2012 г., 10:23
извините, это был мой прежний код, я удалил его!
 Kjuly01 июн. 2012 г., 10:24
Кстати, имя лучше начинать со строчной буквы, напримерphotosInAlbum. Это хорошая практика. ;)
 Mc.Lover01 июн. 2012 г., 10:11
@ samfisher проверь мой отредактированный вопрос
 Kjuly01 июн. 2012 г., 10:21
[PhotosInAlbum release]; .. но где жеalloc?
 Saurabh Passolia01 июн. 2012 г., 10:09
можешь показать содержимое .plist?

Ответы на вопрос(5)

imageWithContentsOfFile: используйте путь, который является полным или частичным путем к файлу. Вы можете использоватьimageNamed:место @ метод (который использует имя файла). Просто замените

К

[UIImage imageNamed:[imageArray objectAtIndex:1]];
 Mc.Lover01 июн. 2012 г., 10:16
тот же результат! Я ничего не показываю в UIImageView
 Nuzhat Zari01 июн. 2012 г., 10:18
Проверьте, включили ли вы эти изображения в свой проект или нет?
 Mc.Lover01 июн. 2012 г., 10:19
не могли бы вы посмотреть мой отредактированный вопрос?
 Kjuly01 июн. 2012 г., 10:19
@ Mc.Lover вы уверены, что добавилиPhotosInAlbum для self.view в качестве подпредставления? И, как сказал @NuzhatZari, вы также убедитесь, что изображения есть в вашем проекте.
 Mc.Lover01 июн. 2012 г., 10:22
оба ответа: ДА ДА

первоначально,[UIImage imageNamed:[imageArray objectAtIndex:1]]; решил бы твою проблему. Но вы не можете решить эту проблему таким способом, который выглядит так, как будто проблема с этой строкой

[controller.view addSubview:PhotosInAlbum];

Это может быть ваш контроллер.Посмотрет ноль в тот момент, когда вы пытаетесь добавить свое изображение.

Просто убедитесь, что это не так. потому что если это так, то ваш PhotosInAlbum совсем не добавляется в качестве подпредставления кcontroller.view.

PhotosInAlbum.image = [UIImage imageWithContentsOfFile:[imageArray objectAtIndex:1]];

эта часть должна быть такой

PhotosInAlbum.image = [UIImage imageNamed:[imageArray objectAtIndex:1]];
 Mc.Lover01 июн. 2012 г., 10:17
тот же результат! Я ничего не показываю в UIImageView
 Umgre01 июн. 2012 г., 10:46
@ Mc.Lover Вы разместили PhotosInAlbum?
Решение Вопроса

Плист неверен, должно быть

Root ---- Dictionary
     PhotosArray ----- Array
         Item 0   ------ String -- Beach.jpg

Затем добавьте этот код в свой viewController. Убедитесь, что интерфейс imageView является ссылкой на IBOutlet.

NSDictionary *picturesDictionary = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Photos" ofType:@"plist"]];     
NSArray *imageArray = [picturesDictionary objectForKey:@"PhotosArray"]; 
PhotosInAlbum.image = [UIImage imageNamed:[imageArray objectAtIndex:0]];
 Mc.Lover01 июн. 2012 г., 11:10
спасибо, что сделали ....!

 PhotosInAlbum.image = [UIImage imageNamed:[imageArray objectAtIndex:1]];

Ваш[imageArray objectAtIndex:1] будет возвращать только имя изображения, а не его путь, поэтому для использования imageWithContentsOfFile необходимо указать путь к изображению, а не только имя изображения.

Ваш ответ на вопрос