有没有办法获得像类的所有键值对的字典?
解决方法
你必须使用
Objective-C Runtime functions自己动手.这是一些非常基本的示例代码.请注意,获取类的ivars不会获得其超类的ivars.您需要明确地执行此操作,但函数都在运行时中.
#import <objc/objc-runtime.h> #include <inttypes.h> #include <Foundation/Foundation.h> @interface Foo : NSObject { int i1; } @end @implementation Foo @end @interface Bar : Foo { NSString* s1; } @end @implementation Bar @end int main(int argc,char** argv) { NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; unsigned int count; Ivar* ivars = class_copyIvarList([Bar class],&count); for(unsigned int i = 0; i < count; ++i) { NSLog(@"%@::%s",[Bar class],ivar_getName(ivars[i])); } free(ivars); [pool release]; }