Считать имя изображения из проблемы синтаксиса plist? - PullRequest
0 голосов
/ 30 июля 2011

Я пытаюсь прочитать ссылку на файл изображения из списка и сделать изображение отображаемым в подробном представлении. хотя я могу сделать это для моего макета представления таблицы, у меня возникают проблемы с этим с моим DetailViewController nib-файлом. Я надеюсь, что кто-то может помочь мне решить проблему и объяснить, где я иду не так. То, что следует за кодом, является моим объяснением того, что я ДУМАЮ, что я делаю. Если бы вы могли объяснить мне, что я делаю неправильно, и показать, что я должен делать, я был бы очень признателен. Я пытаюсь научиться так же сильно, как пытаться заставить вещи работать.

Я думаю, что проблема в двух местах. Первый мой didSelectRowAtIndexPath метод:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    //Get the dictionary of the selected data source.
    NSDictionary *dictionary = [[[self.localSites objectAtIndex:indexPath.section]objectForKey:@"rowData"] objectAtIndex:indexPath.row];

    TableDetailViewController *controller = [[TableDetailViewController alloc] initWithNibName:@"TableDetailViewController" bundle:[NSBundle mainBundle]];  

    controller.title = [dictionary objectForKey:@"Location"];
    controller.dText = [dictionary objectForKey:@"details"];

    // THIS IS WHERE THE PROBLEM IS
    NSString *tiny = [dictionary objectForKey:@"thumb"];
    controller.mainImage  = [UIImage imageNamed:tiny];

    [self.navigationController pushViewController:controller animated:YES];

    [controller release];
}

В приведенном выше коде, помеченном //THIS IS WHERE I THINK THE PROBLEM IS, я пытаюсь получить ссылку на изображение, содержащееся в строке в plist, и использовать ссылку для получения изображения. Этот подход прекрасно работает в моем методе cellForRowAtIndexPath, где я использую его для заполнения левой части таблицы миниатюрными изображениями, на которые ссылается мой список.

В приведенном выше коде mainImage относится к строке, которую я пытался подключить к выходу UIImageView в моем TableDetailViewController.xib через мой файл TableDetailViewController.m, как показано ниже. Здесь я думаю, что проблема номер два:

- (void)viewWillAppear:(BOOL)animated 
{
    [super viewDidLoad];

    //This Bit says that the text contained in UITextView blurb is the string dText, which is used in my didSelectRowAtIndex method
    blurb.text = dText;

    //This is where I try to do the same thing by saying that UIImageView topImage is the NSString mainImage which I use in my didSelectRowAtIndex method
    topImage.image =  mainImage;    
}

Моя логика заключалась в том, что topImage - это UIImageView, а mainImage - строка, содержащая представление изображения, которое в моем методе didSelectRowAtIndex я передаю значение ключа «thumb», содержащегося в моем файле plist.

Однако вышесказанное выдает предупреждения. Кто-нибудь может помочь?

Спасибо, что нашли время, чтобы прочитать.

1 Ответ

0 голосов
/ 31 июля 2011

Хорошо, мне удалось решить это.Моя ошибка состояла в том, чтобы объявить указатель mainImage как NSString, а не как UIImage.Я сделал это, потому что в .plist я использую имя изображения, содержащегося в строке.Однако я понял, что когда я изменяю эту строку для файла .png с тем же именем в моем методе didSelectRowAtIndexPath, к тому времени, когда я передаю его в mainImage, он больше не является строкой, которую я передаю, это изображение.Сортировка!Легкая ошибка для такого новичка, как я.Думал, что я должен опубликовать, поскольку я уверен, что я не буду единственным, кто сделает эту ошибку.

...