Свойства объекта после их синтеза ведут себя почти как обычные методы объекта, поэтому вы можете выполнить следующую проверку
if ([myObject respondsToSelector: @selector(propertyName)]) {
// your code here
}
Или, если вы хотите использовать строки в качестве имени селектора:
if ([myObject respondsToSelector: NSSelectorFromString(@"propertyName")]) {
// your code here
}
Здесь propertyName
является получателем (его имя подписи точно соответствует вашему объявленному имени свойства), поэтому, если вы хотите проверить наличие установщика, вы должны добавить дополнительное выражение:
[myObject respondsToSelector: @selector(setPropertyName:)])