为什么iOS无法使用class_getProperty函数获取类UIView的子视图属性?

时间:2012-06-28 05:00:58

标签: objective-c uiview runtime subviews

我想获取有关类subviews的{​​{1}}属性的信息:

UIView

但是,它返回零?我觉得这很奇怪。有人可以向我解释这种行为吗?

2 个答案:

答案 0 :(得分:1)

怪异。如果您使用-valueForKey:,则可以清楚地显示它存在。这曾经是Xcode 3.2.3中旧的LLVM clang编译器的一个错误,其中类别中的属性(是的,它在UIView上的类别中声明)不会被运行时识别,甚至还有错误报告提交了here。我知道最新版本的Xcode在最近的类别中遇到了麻烦......

答案 1 :(得分:0)

我只是写一个测试代码:

@interface Cat : NSObject
    @property (nonatomic, strong) NSString *name;
    @property (nonatomic) NSInteger         age;
    @property (nonatomic, readonly, copy)   NSArray *subviews;
@end

没关系。所以苹果公司可能会对它做出如此神奇的事情。