小编Sam*_*ett的帖子

测试只读属性与set/get键 - obj-c/cocoa

如果我只有一个键列表,是否有一种优雅的方法来测试对象的只读与读/写属性?我意识到我可以把钥匙串起来:

NSString *setterString = [@"set" stringByAppendingString:[someKeyString capitalizedString]];
BOOL isReadWrite = [myObject respondsToSelector:NSSelectorFromString(setterString)];
Run Code Online (Sandbox Code Playgroud)

或者更好的是尝试为密钥设置一个值并检查NSUndefinedKeyException- 但是对非异常行为使用异常似乎是不好的形式.

为了清楚起见,我想以编程方式审计对象的属性,并告诉它们之间的区别,例如,

@property (readonly) NSString *someReadOnlyKey
@property NSString *someReadWriteProperty
Run Code Online (Sandbox Code Playgroud)

编辑:为了清楚,如果将键实现为@propertys或手动getter/setter ,则无关紧要.只关注公共接口.并且感谢您询问我想要实现的目标 - 首先要做到这一点可能更为重要.

我试图勾勒出一些生成对象键的图形表示的代码.所有的密钥都是事先知道的 - 但我不会总是知道哪些密钥可以建立(这取决于特定的子类实现)

cocoa objective-c key-value-coding

3
推荐指数
2
解决办法
1283
查看次数

标签 统计

cocoa ×1

key-value-coding ×1

objective-c ×1