![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Object-C
Ocean_WANG_
最怕你一生碌碌无为,还安慰自己平凡可贵!!!
展开
-
用runtime仿照系统自定义KVO -- 深度解析KVO原理
从上一篇我们已经清楚了KVO是如何实现的,我们先来复习下,KVO的实现步骤:1.自定义一个NSKVONotifying_Studet的子类2.重写setName方法,在里面通知观察者3.修改isa指针,指向NSKVONotifying_Studet类,好让外界调用这个子类。原创 2016-09-19 14:33:43 · 608 阅读 · 0 评论 -
KVO的实现原理分析
KVO,即:Key-Value Observing,它提供一个机制,当指定的对象的属性发生了改变,则对象就会接收到通知。也就是说它能时刻监听到属性的改变。原创 2016-09-19 09:44:24 · 430 阅读 · 0 评论 -
block的高级用法(二) -- block作为返回值,链式编程思想
相信用过Masonry框架的同学,估计都对里面的调用方式记忆犹新 -- 都是用点语法调用的。他是怎么做到的能这样一直调用呢?大家可以思考下,在iOS中,一个函数的返回值还能添加参数的,会是什么实现呢?其实不难想到那就是 -- block。原创 2016-09-18 16:46:40 · 5132 阅读 · 0 评论 -
block的高级用法(一) -- block传值
我们先从简单的入手,先讲下block的传值,后面会有更精彩的。在讲传值之前我们先复习下block的基础知识原创 2016-09-18 15:19:13 · 1725 阅读 · 1 评论 -
self和super的深入解析
self和super的深入解析原创 2016-09-16 22:33:46 · 469 阅读 · 0 评论 -
Xcode模拟器不显示iOS版本
最近Xcode8更新了,突然发现Xcode的模拟器后面显示为UDID不是显示为iOS版本原创 2016-09-16 09:13:00 · 1944 阅读 · 2 评论 -
iOS跳转到APP的设置页面
因为目前我们开发的APP已经没有适配iOS8以前系统的必要了,所以现在只记下iOS8以后使用的方法NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; if ([[UIApplication sharedApplication] canOpenURL:url]) { [[原创 2017-11-30 19:05:38 · 1325 阅读 · 0 评论 -
iOS创建绝对的单例
iOS创建单例的方式有很多,系统中的如:[NSUserDefaults standardUserDefaults];[NSFileManager defaultManager];等等这些方式创建单例。但是这些不是绝对的单例,如果用下面方式创建他们就不是一个对象了。[NSUserDefaults new];[NSFileManager new];所以创建绝对的单例,就是无论使用何种方式调用,只生...原创 2018-05-11 10:12:21 · 731 阅读 · 0 评论