所以Objective-C有这些很好的函数NSClassFromString()
和NSProtocolFromString()
,它们从传递的字符串名称返回一个类或协议。有没有办法用对象做到这一点?
答案 0 :(得分:5)
不,因为对象没有规范名称或字符串表示。对于一个类,有一个叫做“NSWindow”的类,或者没有。对于对象,这种对应并不真正适用。如果您要序列化某个对象,请查看NSCoding protocol并随附documentation。
答案 1 :(得分:0)
我能想到的最接近的是-description
,但我怀疑你对所有成员的反省要比基本描述更多。如果你是,那么你将使用Chuck's answer,因为你需要序列化/反序列化。
答案 2 :(得分:0)
如果要实例化对象,也可以执行此操作
Class class = NSClassFromString(className);
id object = [class new];