Название в значительной степени говорит обо всем. Я хочу создать NSMutableDictionary, где я использую UIImageViews для поиска булевых значений. Вот как это выглядит:Использование UIImageView в качестве ключа в NSMutableDictionary для поиска boolean
Мой .h файл:
@interface ViewController : UIViewController{
UIImageView *image1;
UIImageView *image2;
NSMutableDictionary *isUseable;
}
@property (nonatomic, retain) IBOutlet UIImageView *image1;
@property (nonatomic, retain) IBOutlet UIImageView *image2;
@property (nonatomic, retain) NSMutableDictionary *isUseable;
Мой .m файл:
@synthesize image1, image2;
@synthesize isUseable
- (void)viewDidLoad
{
isUseable = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@NO, image1,
@NO, image2,nil];
}
-(void)runEvents{
if(some condition){
[isUseable setObject:@YES forKey:(id)image1];
}
//Use it later:
if(isUseable[image1]){
//Do stuff
}
}
Она компилирует, но когда я запускаю его я получаю неперехваченное исключение 'NSInvalidArgumentException', Причина: '- [UIImageView copyWithZone:]: непризнанный селектор, отправленный в экземпляр.
Я предполагаю, что проблема заключается в том, что класс NSDictionary копирует свои ключи. Есть ли способ заставить словарь работать в этом случае? Если нет, как мне настроить поиск, как тот, который я хочу? Любые идеи/предложения?
Спасибо, это помогло. Я немного смутился, пока не понял, что мне нужно установить собственное значение тега (моя ошибка в том, что я не читал ваш ответ так тщательно, как должен был). Я вроде как предложение хэша ниже, так как мне не нужно было думать о том, чтобы придумать свои собственные идентификаторы. – c31983