开发中遇到的bug

wby : cocacola-ty.github.io

出现Duplicate Symbol链接错

  1. 可能该文件被引入两次,Targets的Build Phase设置项里,查看Complie Sources这一项,看看出现问题的类是不是有重复的,用文件名过滤也比较容易发现。这种问题一般也是多人协作开发时,project文件冲突导致的。发现这种问题,只要删除就可以了。不过有可能删除其中一个文件时,重复文件会自动全部删除,所以还需要单独添加一下。
  2. 出现问题的类是不是import .m文件
  3. 是不是第三方库中有文件和该类同名

webview进入didFailLoadWithError

error.code == -999
一个页面没有被完全加载之前收到下一个请求
可以直接return该错误尝试解决


translatesAutoresizingMaskIntoConstraints

  1. 缺少约束,约束冲突

  2. 少设置frame


出现访问僵尸对象问题

  1. 查看dealloc方法是否进行提前释放
  2. 查看dealloc方法调用时间

images.xcassests

  • 只支持png格式图片
  • images.xcassets中图片只能有 imagenamed:方法调取

通过在view上添加一个layer来实现动画,出现动画不还原

  • 确保添加的是一个layer,不要重复一直添加layer,会覆盖。通过懒加载解决

多线程会导致的问题

  1. 开启子线程引起的内存开销,默认主线程1M,子线程512k
  2. 多线程之间由于网络请求时间差引发的问题

加载xib时报错

libc++abi.dylib:terminate_handler unexpectedly threw an exception

NSScanner: nil string argument

  1. 检查约束是否有冲突约束

  2. 检查是否有失效的连线!! .m/.h 中已经删掉连线出来的控件,但是xib中未删除关联!!


下载图片时线程阻塞

dataWithContentsOfURL方法是同步方法,当图片较大或网络较差时 该方法阻塞后面其他代码会无法执行


调试时po不打印对象信息

将项目的scheme 改为Debug,release模式下不现实参数值

删除MainStoryBoard之后的报错

MainStoryBoard删除之后要同时需要在info.plist中删除Main StoryBoard Base File Name 这一行
并且在didFinishLaunching中新建一个window,否则系统是没有window的。


控制器的present和push

如果当前控制器是present出来的,从当前控制器继续向下跳转时不要用push,因为它会从当前控制器的上一个控制器去push。


一个控制器中多个collectionView时,有的collectionView不显示Cell

collectionview里面是scrollview,他有偏移,偏移出了collectionView导致他的cell方法不调用。只要设置控制器不自动偏移即可。

self.automacticallyAdjustsScrollViewInsets = NO


tableView运行崩溃,提示:_configureCellForDisplay:forIndexPath

  1. 检查是否设置重用标识符

  2. 检查获取的cell是否为nil


.h文件中报错 unterminated conditional directive

  • 此报错原因是因为条件编译缺少结束
  • 检查是否缺少#ifdef 是否缺少 #endif

控制台输出:Class PLBuildVersion is implemented in both frameworks

当工程中使用到了PhotoKit,当运行时,可能会在控制台出现该提示。因为PLBuildVersion在PhotoKit和Assert


关于storyboard中tableview点击cell不走segue的问题

如果直接拉出来一个tableviewcontroller上面的cell是默认提供的,该cell的重用标识符为空,当从cell连线到下一个控制器时是该标识符为空的cell跳转到下一个控制器。并不是我们创建的cell。所以当运行时点击我们创建的cell不会跳转。
解决方法,设置默认的cell的标识符


将nil格式为字符串

如果将nil对象格式化成字符串会转换成 (null)


NSString *str = [NSString stringWithFormat:@"%@",nil];

你可能感兴趣的:(开发中遇到的bug)