随笔分类 -  Runtime/KVC/KVO

摘要:场景: 我们有一个"Person"类,有一个对象方法"sayHiWithEnglish",打印输出英文"hello"。我们仍想调用此方法,但想打印中文"你好"。 怎么办呢?此时,我们需要使用运行时交换两个对象方法的实现即可。 代码很简单,注释很详细,不再做过多解释。 调用: 阅读全文
posted @ 2017-02-06 10:36 ys123456789 阅读(316) 评论(0) 推荐(0)
摘要:// 设置随机颜色给Application的statusBar,从此妈妈再也不用担心statusBar的背景色 id bgStyle = [[UIApplication sharedApplication] valueForKeyPath:@"statusBar.backgroundView.style"]; [bgStyle setValue:[UIColor redColor] forKey... 阅读全文
posted @ 2017-02-06 10:19 ys123456789 阅读(596) 评论(0) 推荐(0)
摘要:场景:我们调用[UIImage imageNamed:@"1"]方法,但实现使用自定义的方法实现。 由于代码很简单,注释很详细,不做解释了,直接上代码。 阅读全文
posted @ 2017-02-06 10:13 ys123456789 阅读(376) 评论(0) 推荐(0)
摘要:分类中不能添加属性。 在分类中,@property (nonatomic, assign) NSInteger age;只会生成同名的setter和getter方法,不会生成带_的成员变量和对应的setter和getter方法的实现。 那怎么给分类添加属性呢?使用运行时可以。 oc有两个运行时方法: 阅读全文
posted @ 2017-02-06 08:30 ys123456789 阅读(2037) 评论(1) 推荐(1)
摘要: 阅读全文
posted @ 2016-12-06 22:26 ys123456789 阅读(289) 评论(0) 推荐(0)
摘要:我们知道,KVC+Runtime可以做非常多的事情。有了这个,我们可以实现很多的效果。 这里来个福利,利用KVC+Runtime获取类/对象的所有成员变量、属性、方法及协议; 并利用它来实现字典转模型。 废话不多说,直接上代码: 1、工具类(其实就是NSObject的一个分类)头文件 2、下面我们来 阅读全文
posted @ 2016-11-03 00:54 ys123456789 阅读(742) 评论(0) 推荐(1)
摘要:1、KVO是基于Runtime机制实现的; 2、当某个类的对象的某个属性第一次被观察时,系统会在运行期间动态地创建该类的一个派生类,在这个派生类中重写基类的任何被观察属性的setter方法,派生类在被重写的setter方法内实现真正的通知机制; 3、如果原类为Person,那么生成的派生类名为NSK 阅读全文
posted @ 2016-11-01 21:12 ys123456789 阅读(572) 评论(0) 推荐(0)
摘要:由于知识点比较简单,这里不再陈述一大堆的原理,直入主题。 KVC中的集合运算符有以下三类: 1、简单集合运算符:@avg、@sum、@max、@min、@count (只能用在集合对象中,对象属性必须为数字类型) 2、对象操作符: @unionOfObjects:返回指定属性的值的数组,不去重 @d 阅读全文
posted @ 2016-10-30 23:14 ys123456789 阅读(2107) 评论(1) 推荐(0)