#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. Позвольте мне просто выразить это так: честно говоря, это плохой метод организации ваших данных. Позвольте мне предложить другой способ в моем ответе.