iOS duplicate symbol _OBJC_METACLASS_$_ClassA in

这个原因是开发过程中经常会遇到的问题,经分析以及收集我整理出来这几个原因:

1.引入头文件时,由于疏忽,误引入.m文件。这种一般仔细检查一下出现问题的类的源文件就能发现。

2.同一个类,实现两次,即有两个@implementation 。这种一般会有一个警告,也比较容易发现。

3.工程文件,同一个类文件被引入了两次,引起这种错误的原因大概有两种:一是多人协作开发时,导致project文件合并冲突;二是同名文件不在同一目录下,添加到工程时造成重复添加。 这种一般在文件视图,用名字过滤器检查一下就发现了。

4.Targets的Build Phase设置项里,查看Complie Sources这一项,看看出现问题的类是不是有重复的,用文件名过滤也比较容易发现。这种问题一般也是多人协作开发时,project文件冲突导致的。发现这种问题,只要删除就可以了。不过在我解决问题过程中,删除其中一个文件时,重复文件会自动全部删除,所以还需要单独添加一下。如果没有的话,也是需要添加一下,但是记住,添加的是.m文件

5.如果我们的工程中引用了第三方的库,而恰好第三方的库里面有一个ClassA,也会出现这种问题。如果不能修改第三方的库代码,只能修改我们自己的代码了。

6,问题出在model时,如果model就单有属性,.h文件里面声明了,但是 .m文件没有实现,也会报错

你可能感兴趣的:(iOS duplicate symbol _OBJC_METACLASS_$_ClassA in)