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

浙公网安备 33010602011771号