iOS面试知识总结之问题解决

凡经历过iOS面试的我们总会发觉,即使实际开发中做过许多项目,也难免为一个普通的面试题受挫。这也许不是因为我们技术不过关,而是因为在平时我们忽略了怎样将用到的知识很好的表述出来。闲暇之余我把一些常见的iOS面试问题总结一下,即使不是为了面试,也有助于对基础知识的回顾。 此篇总结在iOS面试中可能会被问到的有关Bug解决或者功能实现思路等方面的问题:

1.内存优化的方案

1.首选使用ARC环境开发,但是也要注意防止循环引用的产生,避免内存泄漏 2.懒加载,延迟创建对象,需要的时候才创建节省内存消耗 3.复用,单元格的服用,避免过多的创建对象 4.选择正确的是数据结构,不必要的时候不使用可变容器 5.单例模式 6.及时删除缓存信息

2.Xcode工具的使用

在开发过程中遇到类似内存泄漏的问题,我们可以通过Xcode中的Instruments来分析解决问题: 【Xcode】 > 【Open Developer Too】>【 Instruments】 1.Leaks:检测内存泄漏 2.zombies :僵尸对象,指的是对应的内存已经被释放并且不再会使用到,但是你的程序却在某处依然有指向它的引用

3.iOS中的回调机制

1.代理:也叫委托,当某个对象收到多个事件,并要求同一个对象来处理所有事件时。委托机制依赖于某个协议定义的方法来发送消息。 2.通知:当需要多个对象或两个无关对象处理同一个事件时使用。 3.Block:适用于回调只发生一次的简单任务。

4.BAD_ACCESS的错误原因

原因:访问了野指针,比如已经释放的对象的成员变量或者发送消息。 调试:Enaable zombie objects 、设置全局断点

5.解决报错libc++abi.dylib handler threw exception

遇到这种错误,即使用了All Exceptions,也断点到相应的代码了,但是没打印对应的日志。此时我们可以添加如下的代码来打印异常log:

@try{  
      //可能出现错误的代码片段
    }  @catch(NSException *exception) {  
          NSLog(@"exception:%@", exception);  
    }  @finally {     
   
  }  

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端下午茶

Vue源码阅读 - 依赖收集原理

vue已是目前国内前端web端三分天下之一,同时也作为本人主要技术栈之一,在日常使用中知其然也好奇着所以然,另外最近的社区涌现了一大票vue源码阅读类的文章,在...

2442
来自专栏james大数据架构

Android 命名规范 (提高代码可以读性)

android文件众多,根据名称来辨别用途很重要,因此命名要规范 这篇文章可参考:Android 命名规范 (提高代码可以读性) 刚接触android的时候,命...

3137
来自专栏雨尘分享

2018 - iOS 面试题汇总一般面试题BAT面试题

4.6K3
来自专栏Golang语言社区

GO语言高并发学习心得体会例

<div class="blockcode"><blockquote>信号 sigRecv1:=make(chan os.Signal,1) sigs1...

3578
来自专栏liuchengxu

[译]27个Jupyter Notebook小提示与技巧

Jupyter notebook, 前身是 IPython notebook, 它是一个非常灵活的工具,有助于帮助你构建很多可读的分析,你可以在里面同时保留代码...

2872
来自专栏大数据文摘

Jupyter Notebook的27个窍门,技巧和快捷键

64211
来自专栏JackeyGao的博客

用户Python3解析超大的csv文件

我在日前获得一个任务,为了做分析, 从一个超大的csv文件中解析email地址和对应的日期时间戳然后插入到数据库中. 我知道有其他工具可以方便的完成我的工作(比...

992
来自专栏owent

C++又一坑:动态链接库中的全局变量

前几天我们项目的日志系统出现了一点问题,但是一直没有时间去深究。 昨天在同事的帮助下,无意中猜了一种可能性,结果还真被我猜中了,于是今天就特别研究了一下,记录...

2413
来自专栏狮乐园

高级 Angular 组件模式 (4)

命名冲突不仅存在于指令的选择器之间,同时也会存在于指令的Inputs和Outputs属性,当这些属性名一样时,Angular并不会进行提示,它会按原本的逻辑正常...

1201
来自专栏java一日一条

JavaScript 内存泄露的4种方式及如何避免

本文将探索常见的客户端 JavaScript 内存泄露,以及如何使用 Chrome 开发工具发现问题。

1293

扫码关注云+社区

领取腾讯云代金券