【发布时间】:2010-11-26 02:07:46
【问题描述】:
我正在为 Objective-c 编写一个 xml 序列化类。
关键是给类一个类类型和一个xml文件。
它应该返回一个带有数据的实例。
我已经让它工作了,它做了很多工作——处理原语(+nsstring)、用户定义的类和nsarray。不处理指针或 C 数组。
显然,这在很大程度上依赖于反射。
问题:当我设置某个类的实例的值时,我应该检查是否存在具有正确名称的属性,还是可以只使用简单的反射设置变量?
这是我目前使用的那种代码:
id newClass = class_createInstance(NSClassFromString(elementName), sizeof(unsigned));
Ivar nameVar = class_getInstanceVariable([newClass class], "name");
if (nameVar != nil)
object_setIvar(newClass, nameVar, [NSString stringWithString:@"George"]);
另外,在这种分配之后,我应该释放什么吗?
【问题讨论】:
-
你为什么不使用 NSKeyedArchiver 呢?还是 CoreData?
标签: objective-c reflection properties xml-serialization