Ответ 1
В то время как @weichsel верен, есть лучший способ.
Использование:
[anObject valueForKey: @"propertyName"];
и
[anObject setValue:value forKey:@"propertyName"];
Очевидно, что @"propertyName"
может быть NSString
, который динамически формируется во время выполнения.
Этот метод называется Key Value Coding и имеет фундаментальное значение для Cocoa.
Почему это лучше, потому что -valueForKey
будет делать то, что необходимо, чтобы "вставить" любой тип, возвращаемый в объект. Таким образом, если свойство имеет тип int
, оно возвращает экземпляр NSNumber
, содержащий int.
С этим гораздо легче справиться - performSelector
будет работать только для типов, которые попадают в ценность указателя на память.
Обратите внимание, что существует также -setValue:forKey:
.