zoukankan      html  css  js  c++  java
  • xcode 错误

    【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.


  • 相关阅读:
    [ML] the notes
    [Java] 在 jar 文件中读取 resources 目录下的文件
    [LeetCode] 53. Maximum Subarray 解题思路
    [git] git 分支管理和工作流程
    debug实战:Unmanaged High Memory非托管高内存
    batch insert 1 million datas into mysql
    nuget的小Tips
    debug实战:进程Hang+High CPU
    debug实战:COM组件GetToSTA导致高内存+GC被阻塞
    svn cleanup failed问题解决
  • 原文地址:https://www.cnblogs.com/bugismyalllife/p/4802379.html
Copyright © 2011-2022 走看看