码迷,mamicode.com
首页 > 其他好文 > 详细

xcode 错误

时间:2015-09-12 00:46:20      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:

【IOS平台篇】

1.

1
2
3
4
<span style="font-size: 16px;">duplicate symbol _OBJC_METACLASS_$_DMSDWebImagePrefetcher in:
    /Users/admin/Library/Developer/Xcode/DerivedData/BankFinder-fqgijokhpyhxxycxegilsfupadsm/Build/Intermediates/BankFinder.build/Release-iphoneos/BankFinder.build/Objects-normal/armv7/DMSDWebImagePrefetcher.o
    /Users/admin/Desktop/OSChina/BankFinder/BankFinder/3rdLibs/DomobUniversal/libDomobThree.a(DMSDWebImagePrefetcher.o)
</span>

 说明:出现duplicate symbol错误时不要慌,不外乎两种类型的错误:第三方静态lib文件之间冲突,这时候在错误描述里面会体现出来;第二种是源文件(.h .m)文件之间的冲突,这里包括工程中的源文件之间的冲突以及工程的源文件与lib库中的源文件冲突。此处属于第二种中的后者。

解决方法:根据错误提示,找到相应的文件,比如本处是DMSDWebImagePrefetcher.h(.m)在工程中出现多次,排查并删掉之

 

2.xcode编译失败,但是无任何出错的信息!不会有红色的编译错误提示!

说明:很奇特的情况,原因是当前的系统时间之后了一天,改回正常的时间就没问题了!

解决方法:修正系统时间

 

3.no matching function for call to ***(***表示函数名)

说明:从字面上理解很像是函数不存在,但其实是简单的一个错误。这种情况一般发生在oc调用c或者C++时,主要是由函数的参数不匹配引起的!

解决方法:修正函数的参数

 

4.自定义view,在loadNibNamed这句上始终crash掉,但是不显示异常原因!

说明:这种情况一般是因为xib的outlet连接错误,我这次遇到的错误就是本 来outlet链接了一个property,但是后面这个property名称被我改了,但是xib中没有做相应的更改,导致crash。如何确认是否正 确呢?在你的自定义xib的view上右键查看所有的outlet,如果有错就会有黄色标志。

解决方法:重新连接outlet

 

5.cocoaPod设置好PodFile并使用pod update或者pod install下载新的第三方库后,编译代码没问题,在运行时提示“unrecognized selector”错误。

说明:理论上看,所有流程都没问题,头文件也加了,库也加到工程了,command+方法也能正确找到对应头文件,但在运行时却出错。怀疑是工程设置的问题。最后参考SO的文章。去工程设置的Other Linker Flag中检查发现,新添加的库没有出现在里面,也就是说虽然库资源都有了,但是xcode无法加载。

比如,我们期望新增MMPlaceHolder库,但是在上述操作完成后设置是这样的:

技术分享

 

 

解决方法:

技术分享

 

6.error is Error Domain=NSURLErrorDomain Code=- 1000 "错误的 URL" UserInfo=0x8088e70 {NSUnderlyingError=0x8083680 "错误 的 URL", NSLocalizedDescription=错误的 URL

说明:在进行HTTP请求时出现的-1000的错误码,一般来说这个错误码并不是公司或者项目的后台返回来的,而是系统预定义的一种错误类型。原因是url中存在某些非法字符,比如空格以及中文字符。而空格很有可能在http://...的h前面。

因此如果你的代码没有容错能力,没有对url中的空格以及中文字符等非法字符进行检测,那当发送请求时就会出现这个错误。

解决方法:1、检查url是否有空格;2、检查是否含有中文。url中有中文是允许的,但是在发送前必须进行encoding编码(utf8)。而空格是必须要删除掉的

 

7.dyld: Symbol not found: _OBJC_CLASS_$_xxxxxxxxx

说明:今天遇到一个非常令人费解的崩溃bug,项目代码几年来一直正常运行,但是引入了其他组的某个SDK后在iOS6上崩溃,提示: dyld: Symbol not found: _OBJC_CLASS_$_NSURLSession 但 是经过查证,我们的源码以及该SDK都没有使用过NSURLSession这个类。apple文档中说这个类包含在 Foundation.framework中,但我们确实没有调用。但是把其他组的这个SDK删掉后又正常。这个问题目前还想不通,但是我们的解决方法如 下,其他类似问题也可以按照这种方式解决。

解决方法:在工程设置的Build Phases->Link Binary with Libraries中将xxxxxxx所在的库从required改为optional,比如我遇到的情况就是改Foundation.framework.

 

 

 

 

 


xcode 错误

标签:

原文地址:http://www.cnblogs.com/bugismyalllife/p/4802379.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!