【IOS平台篇】xcode
1.app
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库中的源文件冲突。此处属于第二种中的后者。iphone
解决方法:根据错误提示,找到相应的文件,好比本处是DMSDWebImagePrefetcher.h(.m)在工程中出现屡次,排查并删掉之函数
2.xcode编译失败,可是无任何出错的信息!不会有红色的编译错误提示!fetch
说明:很奇特的状况,缘由是当前的系统时间以后了一天,改回正常的时间就没问题了!ui
解决方法:修正系统时间编码
3.no matching function for call to ***(***表示函数名)url
说明:从字面上理解很像是函数不存在,但实际上是简单的一个错误。这种状况通常发生在oc调用c或者C++时,主要是由函数的参数不匹配引发的!spa
解决方法:修正函数的参数3d
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中的空格以及中文字符等非法字符进行检测,那当发送请求时就会出现这个错误。
解决方法:一、检查url是否有空格;二、检查是否含有中文。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.