3

我想获取有关subviews类属性的信息UIView

objc_property_t property = class_getProperty([UIView class], "subviews");

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

4

2 回答 2

1

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

于 2012-06-28T05:08:45.013 回答
0

我只是写了一个测试代码:

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

没关系。所以我猜苹果可能会在它上面做得这么神奇。

于 2012-06-28T06:29:26.287 回答