Вопрос по objective-c, xcode, iphone, ios, ipad – iOS: загрузка изображения из файла plist

2

Я пытаюсь показать различные изображения из файла 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.Lover
Кстати, имя лучше начинать со строчной буквы, напримерphotosInAlbum. Это хорошая практика. ;) Kjuly
[PhotosInAlbum release]; .. но где жеalloc? Kjuly
@ samfisher проверь мой отредактированный вопрос Mc.Lover
можешь показать содержимое .plist? Saurabh Passolia

Ваш Ответ

5   ответов
2

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

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.Lover
1
PhotosInAlbum.image = [UIImage imageWithContentsOfFile:[imageArray objectAtIndex:1]];

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

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

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

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

0

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

К

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

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

[controller.view addSubview:PhotosInAlbum];

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

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

Похожие вопросы