Как получить доступ к свойству собственного класса с именем в виде строки

Я ищу способ получить доступ к одному из моего имущества от его имени. Например, у меня есть 3 свойства в определенном классе, как

 @property (nonatomic, weak) UIImageView *image1;  
 @property (nonatomic, weak) UIImageView *image2;  
 @property (nonatomic, weak) UIImageView *image3;

И у меня есть метод, как

 - (void)accessProperty:(NSString *)propertyName{
 //image1, image2 or image3 will be passed here.
 //how can I access the property with its name ?????
 }

Любая помощь будет оценена.

Позвольте мне упомянуть мою потребность более точно. у меня 3 imageView но я хочу установить изображение для конкретного imageView, имя которого совпадает с именем, которое я передал методу. Например, если я буду вызывать метод как [self accessProperty:@"image1"]; Затем он должен установить изображение на imageView1 только

1 ответ

Решение

Ты хочешь valueForKey, Это кодирование значения ключа (KVC):

for (NSUInteger i = 1; i <= 3; i++) {
    NSString *key = [NSString stringWithFormat:@"image%u", i];
    UIImageView *value = [self valueForKey:key];
}
Другие вопросы по тегам