ym Blog

Thinking will not overcome fear but action will.

KVO详解

KVO底层原理及其实现

前言 作为一名iOS开发者,最近面试被问到了KVO的问题。其实KVO的原理以及runtiem的知识,很早之前就有学习和使用了,但是实现的细节都忘记差不多了,故再此重新梳理一下。 正文 NSKeyValueObserving ,一种非正式协议,通知其他对象的指定属性发生了改变。 简单理解就是,监听一个对象的某个属性是否发生改变。 KVO的使用 监听某个对象的某个属性 - ...

ARC 与 MRC 混合使用

MRC 库的处理

Xcode 项目中我们可以使用 ARC 和非 ARC 的混合模式。 有些时候我们工程中引用了十分古老的库为MRC模式,这时就需要采用混合模式进行处理 如果你的项目使用的 MRC 模式,要为 ARC 模式的代码文件加入 -fobjc-arc 标签。 如果你的项目使用的是 ARC 模式,要为 MRC 代码文件加入 -fno-objc-arc 标签 ...

OC 内存管理的基本概念

OC 内存管理的基本概念以及应用

OC 内存管理的基本概念 ###1. 内存管理的基本概念 栈区 stack 堆区 heap heap(堆)是最自由的一种内存,它完全由程序来负责内存的管理,包括什么时候申请,什么时候释放,而且对它的使用也没有什么大小的限制。在C/C++中,用alloc系统函数和new申请的内存都存在于heap段中。 BSS区 来...

5分钟带你看完 WWDC 2018

WWDC 2018 Keynote 全记录

前言 一年一度的 WWDC(苹果全球开发者大会)于北京时间 6月5日 凌晨1点开幕。废话不多说,来看看这次WWDC 都有哪些亮点吧! iOS 12 和 ARKit 2.0 关键词:官方防沉迷最为致命 iOS 12 iOS 12 相较于 iOS 11 并没有太多UI上的变动,刚更新完 bate 版本的 iOS 12,完全感觉不到这是个新系统。 iOS 12 主要是对安全和性...

Xcode命令行工具管理

如何切换Xcode命令行工具

安装 xcode-select --install Xcode版本切换 显示当前使用的xocde版本 $ xcode-select --print-path 选择Xcode中的默认版本 $ sudo xcode-select -switch /Applications/Xcode.app