首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
iOS面试题
订阅
kingZhou
更多收藏集
微信扫码分享
微信
新浪微博
QQ
73篇文章 · 0订阅
iOS底层原理总结 - 探寻block的本质(一)
block本质上也是一个oc对象,他内部也有一个isa指针。block是封装了函数调用以及函数调用环境的OC对象。 上图中将c++中block的声明和定义分别与oc代码中相对应显示。将c++中block的声明和调用分别取出来查看其内部实现。 上述定义代码中,可以发现,block…
iOS模块化探索实践
最近算是初步完成了新APP的模块化,也算是从中总结了一些经验拿出来分享一下。 做模块化还是要结合实际业务,对目前APP的功能做一个模块划分,在划分模块的时候还需要关注模块之间的层级。 比如说,在我们项目中,模块被分成了3个层级:基础层、中间层、业务层。基础层模块比如像网络框架、…
iOS内存管理详解
从上图可以看到,栈里面存放的是值类型,堆里面存放的是对象类型。对象的引用计数是在堆内存中操作的。下面我们讲讲堆和栈怎么存放和操作数据, 还有MRC和ARC怎么管理引用计数。 这就好像候机的时候,无论谁先到达候机厅,总是头等舱的乘客先登机,然后是商务舱的乘客,最后是经济舱的乘客。…
2018年 iOS 面试心得
面试了几家公司之后,最后来到了爱奇艺(坐标上海),工作的内容是笔者个人非常感兴趣的领域。能拿到这个结果对于入行两年半&非科班的笔者来说无疑是幸运的。 很感谢面试官给我这次机会,因为并不是所有人都会认可你的努力,生活本来就没有任何理所应当。 具体的面了哪些公司,有哪些面试题在这里…
iOS 内存管理
如图,就是循环引用的情况,A、B 互相引用无法释放。 代理都是用弱指针,以避免循环引用,即避免上面的情况。 block 可以捕获外界的变量,控制器中的 block 引用 self ,block 的结构体将有一个强指针指向 self(控制器)(如下面代码),如果 block 又是…
设计模式-单例模式
在项目开发时有一些对象其实我们只需要一个,比如:线程池、缓存、日志对象等等。这类对象只能有一个实例,如果制造出多个实例,就会导致许多问题产生,例如:程序的行为异常,资源使用过量,或者是不一致的结果。 虽然程序员之间的约定以及全局变量也可以办得到,但是单例模式确实是经得起时间考验…
iOS 中关于列表滚动流畅方案的一些探讨
近些年,App 越来越推崇体验至上,随随便便乱写一通的话已经很难让用户买帐了,顺滑的列表便是其中很重要的一点。如果一个 App 的页面滚动起来总是卡顿卡顿的,轻则被当作反面教材来吐槽或者衬托“我们的 App balabala...”,重则直接卸载。正好最近在优化这一块儿,总结记…
iOS超级超级详细介绍GCD
Grand Central Dispatch(GCD)是异步执行任务的技术之一。一般将应用程序中记述的线程管理用的代码在系统级中实现。开发者只需要定义想执行的任务并追加到适当的Dispatch Queue中,GCD就能生成必要的线程并计划执行任务。由于线程管理是作为系统的一部分…
iOS 性能优化的探索
我们公司的主App在大约17年5月份前后经历了一次大版本迭代,迭代之后更换了若干个一级和二级页面,首页就在这些个一级页面之内。 17年大约11月份的时候,我们的小程序第一个版本正式上线,然后我们技术的大Leader拿来了小程序给我们看看,小程序的首页流畅性确实优于我们客户端,于…