是否有内置的方法,函数,API,普遍接受的方式等来转储Objective C中实例化对象的内容,特别是在Apple的Cocoa/Cocoa-Touch环境中?
我希望能够做类似的事情
MyType *the_thing = [[MyType alloc] init];
NSString *the_dump = [the_thing dump]; //pseudo code
NSLog("Dumped Contents: %@", the_dump);
Run Code Online (Sandbox Code Playgroud)
并显示对象的实例变量名称和值,以及可在运行时调用的任何方法.理想情况下,易于阅读的格式.
对于熟悉PHP的开发人员,我基本上寻找等效的反射函数(var_dump(),get_class_methods())和OO Reflection API.
在Objective-C中,通常-description使用打印对象ID和实例变量名称/值的方法来覆盖.我想-description通过内省制作一个通用的方法,而不是为每个类手动执行此操作.我希望输出类似于:
<ClassName: 0x??????, ivar1: value1, ivar2: value2, ivar3: value3, ...>
Run Code Online (Sandbox Code Playgroud)
按实例变量名排序也是很好的(因此它们总是以相同的顺序排列).最后,如果这可以被放入一个类别安全压倒一切的NSObject功能,这将是完美的(但我认为这并不简单,因为NSObject.m有一个关于使用警告-[NSString stringWithFormat:]中-description).
我来自php背景......所以我想知道是否有var_dumpXcode 这样的东西,我知道NSLog但我希望它表现得像var_dump.
这有功能吗?
objective-c ×3
xcode ×2
categories ×1
cocoa ×1
ios ×1
nsobject ×1
overriding ×1
reflection ×1
syntax ×1