如果我只有一个键列表,是否有一种优雅的方法来测试对象的只读与读/写属性?我意识到我可以按弦键:
NSString *setterString = [@"set" stringByAppendingString:[someKeyString capitalizedString]];
BOOL isReadWrite = [myObject respondsToSelector:NSSelectorFromString(setterString)];
或者更好的是尝试为键设置一个值并检查一个NSUndefinedKeyException
- 但对非异常行为使用异常似乎是一种糟糕的形式。
为了清楚起见,我想以编程方式审核对象的属性并区分例如,
@property (readonly) NSString *someReadOnlyKey
@property NSString *someReadWriteProperty
编辑:为了更清楚,键是作为@property
s 实现还是手动 getter/setter 并不重要。只关心公共接口。并感谢您询问我要完成的工作-首先要做到这一点可能更重要。
我正在尝试绘制一些生成对象键的图形表示的代码。所有的键都是事先知道的——但我并不总是知道哪些键是可以设置的(这取决于要实现的特定子类)