Rob*_*Rob 0 reflection introspection objective-c
我已经看到了调用可怕的C函数和获取必须迭代的结构的示例(特别是这里),充满了大量的underbars.
为什么我不能这样做(伪跟随):
Money *cost = [[Money alloc] init];
for (Property *property in [[cost class] properties]){
..
}
for (Method *method in [[cost class] methods]){
..
}
Run Code Online (Sandbox Code Playgroud)
?
这些功能并不可怕.它们都记录在Objective-C运行时参考中.
我认为没有+properties和+methods方法的一个原因是因为你很少需要在编译时查找你不知道名字的属性/方法.
在ObjC最有用的自省功能-respondsToSelector:,-isKindOfClass:,-conformsToProtocol:,NSInvocation,KVC,KVO,NS XXXX FromString,他们都使用对象操作.