在swift4之前,使用kvo只需要继承NSObject 就可以了。但是swift4之后发生了变化,必须在class之前加入@objcMembers修饰,不然就没有效果了。 下面举个例子:如定义一个Person类想监听其kvo的变化除了继承NSObject之外,还必须在class之前添加@objcM ...
分类:
移动开发 时间:
2018-02-27 01:08:28
阅读次数:
634
了解cocoa:Cocoa是苹果公司为Mac OS X所创建的原生面向对象的API,是Mac OS X上五大API之中的一个(其他四个是Carbon、POSIX、X11和Java)。苹果的面向对象开发框架,用来生成 Mac OS X 的应用程序。基本的开发语言为 Objective-c, 一个c 的 ...
分类:
其他好文 时间:
2018-02-19 11:34:27
阅读次数:
225
前言:先自己尝试去回答,回答不了再看参考答案,你才能学的更多! 1.MVC具有什么样的优势,各个模块之间怎么通信,比如点击 Button 后 怎么通知 Model? 2.两个无限长度链表(也就是可能有环) 判断有没有交点 3.UITableView的相关优化 4.KVO、Notification、d ...
分类:
其他好文 时间:
2018-02-16 23:15:48
阅读次数:
337
由于ObjC主要基于Smalltalk进行设计,因此它有很多类似于Ruby、Python的动态特性,例如动态类型、动态加载、动态绑定等。今天我们着重介绍ObjC中的键值编码(KVC)、键值监听(KVO)特性: 键值编码KVC 我们知道在C#中可以通过反射读写一个对象的属性,有时候这种方式特别方便,因 ...
分类:
其他好文 时间:
2018-02-02 11:39:03
阅读次数:
188
KVO的基本原理大概是这样的 当一个对象被观察时, 系统会新建一个子类NSNotifying_A ,在子类中重写了对象被观察属性的 set方法, 并且改变了该对象的 isa 指针的指向(指向了新建的子类) , 当属性的值发生改变了, 会调用子类的set方法, 然后发出通知 一. KVO 的基本使用 ...
分类:
其他好文 时间:
2018-01-18 23:08:13
阅读次数:
233
对NSObject写一个分类: #import <Foundation/Foundation.h> @interface NSObject (FMObserverHelper) - (void)fm_addObserver:(NSObject *)observer forKeyPath:(NSStr ...
分类:
移动开发 时间:
2017-12-27 18:11:13
阅读次数:
252
开发过程中遇到 YXTBaseLabelCell .cxx_destruct崩溃,查了下,会在调用类的dealloc方法时调用cxx_destruct,于是看了下代码,找dealloc可能会崩溃的原因,发现我在用KVO的时候 addObserver了,但是在dealloc的时候没有remove,所以 ...
分类:
其他好文 时间:
2017-11-30 13:35:39
阅读次数:
395
// 方法1 - (void)setBaoDanModel:(ModelOfRuZhangCard *)baoDanModel { if (baoDanModel.bankAccNo) { _baoDanModel.bankAccNo = baoDanModel.bankAccNo; self.ba ...
分类:
其他好文 时间:
2017-11-06 21:28:05
阅读次数:
151