首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
iOS Dev
订阅
周毅刚
更多收藏集
微信扫码分享
微信
新浪微博
QQ
8篇文章 · 0订阅
iOS多线程详解:概念篇
讲多线程这个话题,就免不了先了解多线程相关的技术概念。本文涉及到的技术概念有CPU、进程、线程、同异步、队列等概念。 也可能讲的不全或者不足的地方,后续再加以补充,最近一直使用Swift进行开发,本文所有代码例子都会Swift4进行演示。 CPU主要由运算器、控制器、寄存器三部…
AutoreleasePool底层实现原理
App启动后,苹果在主线程 RunLoop 里注册了两个 Observer,其回调都是 _wrapRunLoopWithAutoreleasePoolHandler()。 第一个 Observer 监视的事件是 Entry(即将进入Loop),其回调内会调用 _objc_aut…
iOS Runtime详解
我们从下面几个方面探寻Runtime的实现机制。 Runtime其实有两个版本: “modern” 和 “legacy”。我们现在用的 Objective-C 2.0 采用的是现行 (Modern) 版的 Runtime 系统,只能运行在 iOS 和 macOS 10.5 之后…
iOS KVC和KVO详解
同时苹果对一些容器类比如NSArray或者NSSet等,KVC有着特殊的实现。 KVC要设值,那么就要对象中对应的key,KVC在内部是按什么样的顺序来寻找key的。当调用setValue:属性值 forKey:@”name“的代码时,底层的执行机制如下: 程序优先调用set:…
iOS内存管理详解
从上图可以看到,栈里面存放的是值类型,堆里面存放的是对象类型。对象的引用计数是在堆内存中操作的。下面我们讲讲堆和栈怎么存放和操作数据, 还有MRC和ARC怎么管理引用计数。 这就好像候机的时候,无论谁先到达候机厅,总是头等舱的乘客先登机,然后是商务舱的乘客,最后是经济舱的乘客。…
iOS设计模式详解
使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。 讲到设计模式,必然要提设计原则,同样为了实现代码复用,要遵循软件设计原则。设计模式就是实现了这些原则,达到了代码的复…
iOS RunLoop详解
Runloop 是和线程紧密相关的一个基础组件,是很多线程有关功能的幕后功臣。尽管在平常使用中几乎不太会直接用到,理解 Runloop 有利于我们更加深入地理解 iOS 的多线程模型。 本文从如下几个方面理解RunLoop的相关知识点。 可见,一个RunLoop对象,主要包含了…
iOS多线程详解:实践篇
iOS多线程实践中,常用的就是子线程执行耗时操作,然后回到主线程刷新UI。在iOS中每个进程启动后都会建立一个主线程(UI线程),这个线程是其他线程的父线程。由于在iOS中除了主线程,其他子线程是独立于Cocoa Touch的,所以只有主线程可以更新UI界面。iOS多线程开发实…