今天解析XML用到了KissXML,之后出现了编译错误。
错误如下:
报错的代码为各个类的 self->isa = [DDXMLDocument class];这句话。
Xcode的提示为:Assignment to Objectitve-C's isa is deprecated in favor of object_setClass()
这句话翻译过来的意思为:Objective-C中的isa已经舍弃了,代替它的是object_setClass()
解决方法:
1.在类中导入objc下的runtime.h #import <objc/runtime.h>
2.重新编译,Xcode就会有提示,按照提示修改即可。
修改后变成:object_setClass(self, [DDXMLDocument class]);
如果没有提示。则按照修改后的结果直接写出来即可
以下是部分代码示例:其它同理
if(self && maybeIsaSwizzle)
{
if(nodePtr->type ==XML_ELEMENT_NODE)
{
object_setClass(self, [DDXMLElement class]); //修改之后的
// self->isa = [DDXMLDocument class]; 未修改之前的
}
elseif(nodePtr->type ==XML_DOCUMENT_NODE)
{
object_setClass(self, [DDXMLDocument class]); // 修改之后的
// self->isa = [DDXMLDocument class]; 未修改之前的
}
}