загрузка изображения, на которое ссылается массив

#objective-c

#objective-c

Вопрос:

Возможно ли сохранить имя изображения в массиве, а затем загрузить UIImage это изображение, ссылаясь на массив примерно так

 [imageView setImage:[UIImage imageNamed:[quizArray objectAtIndex:1]]];
  

изображение находится в папке ресурсов

спасибо, Крис

ps … новичок

Ответ №1:

Да, это возможно. Кроме того, ваш код тоже правильный. Приложение должно загрузить второе изображение в вашем массиве (индексы начинаются с 0).

Если вы новичок, вам следует поискать несколько книг или онлайн-руководств для программистов iOS. Например, lynnda.com предлагает вам несколько видеоуроков. (Я тоже использовал один из них, когда был новичком) 🙂

Ответ №2:

Абсолютно возможно. Однако, когда вы говорите the image is in the resource folder , я предполагаю, что это означает, что вы просто хотите получить изображение из своей папки ресурсов, а затем отобразить его, правильно?

Если это так, то нет необходимости помещать его в массив. Просто получите к нему доступ следующим образом:

 [imageView setImage:[UIImage imageNamed:@"someimage"]];
  

Однако в вашем примере вы использовали [quizArray objectAtIndex:1] в сочетании с imageNamed: . Помните, imageNamed: принимает только строковый параметр, поэтому передача ему объекта приведет к сбою вашего приложения.


Я бы сформулировал ваш вопрос по-другому. Вместо использования массивов вам было бы лучше использовать словари. Вот так:

 NSImage *image1 = [NSImage imageNamed:@"myimage"];
NSMutableDictionary *quizDict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:
                                 @"What colour is the sky?","question",
                                 @"blue",@"answer",
                                 @"red",@"wrong1",
                                 @"green",@"wrong2",
                                 @"yellow",@"wrong3",
                                 image1,@"image",nil]; 
  

Затем, чтобы получить к нему доступ, вы можете просто использовать имена ключей, например, так:

 NSString *question = [quizDict objectForKey:@"question"];
NSString *correct = [quizDict objectForKey:@"answer"];
NSImage *image = [quizDict objectForKey:@"image"];
  

Комментарии:

1. правильно, происходит сбой, что я использую вместо imageNamed у меня есть это в массиве как для случайного теста, и некоторые вопросы представляют собой текст, а некоторые изображения вопросы всегда находятся в элементе 0, за которым следуют четыре возможных ответа с правильным ответом, указанным в последнем элементе

2. Хорошо, немного притормозите. Вы говорите, что изображения иногда имеют индекс 0, а иногда нет? Можете ли вы сделать это более понятным?

3. где именно оно находится? Возможно, это потерялось в вашем комментарии. Загрузите его куда-нибудь вроде pastie.org и разместите ссылку здесь.

4. вот фрагмент массива quizArray = [[NSMutableArray alloc] initWithObjects: [NSMutableArray arrayWithObjects:@»Q: какого цвета небо?», @»blue», @»Red», @»Green», @»Yellow», @»1″, nil], [NSMutableArray arrayWithObjects: @»Q: Для моих собак оно затем распределяется случайным образом, поэтому вопросы появляются в разном порядке каждый раз, когда запускается тест, вопрос всегда находится в первом элементе. Я хочу сохранить изображение в некоторых элементах вопроса в массиве. у меня все работает нормально, только с текстом, просто не могу изобразить бит изображения

5. Позвольте мне просто выразить это так: честно говоря, это плохой метод организации ваших данных. Позвольте мне предложить другой способ в моем ответе.