Как получить доступ к свойству собственного класса с именем в виде строки
Я ищу способ получить доступ к одному из моего имущества от его имени. Например, у меня есть 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];
}