OC學習總結(三)
14、KVC和KVO
》KVC,key-value coding鍵值編碼,通過setValue: forKey: 的模式給物件設定屬性的值,有點類似於C#中的反射機制
1、基本資料型別setValue時必須封裝成物件,解封時時自動的
2、屬性為物件時,可以通過鍵的路徑進行設定和訪問。setValue: forKeyPath:和valueForKeyPath。path的訪問
是通過點來逐層訪問,如Book物件的屬性Author,"author.name"為訪問作者姓名,
3、屬性的下劃線和沒有下劃線是一樣的,如"author.name"和"_author._name"
》KVO,key-value observer鍵值觀察者。主要應用於觀察者模式
1、註冊監聽
- (void)addObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath
options:(NSKeyValueObservingOptions)options context:(void *)context;
2、實現監聽
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context;
3、移除監聽
- (void)removeObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath;
15、謂詞NSPredicate
》建立謂詞 predicateWithFormat,format中可以用>,=,<,>=,<=,&&,and,&&,or,||,in(大括號包含列表或者傳入陣列),
beginswith,endswith,contains,like。
也可以用佔位符
》evaluateWithObject判斷物件是否滿足設定的條件
》過濾陣列filteredArrayUsingPredicate和過濾可變陣列filterUsingPredicate
16、通知NSNotification
》發出通知
[[NSNotificationCenter defaultCenter] postNotificationName:@"" object: userInfo];
》接受通知
[[NSNotificationCenter defaultCenter] addObserver:self selector: object];
》處理通知,通過第二步中selector來處理通知
》通知為一對多,缺點是不易於維護和管理,最好用delegate模式
版權宣告:本文為博主原創文章,未經博主允許不得轉載。
相關文章
- OC學習總結(一)
- OC學習總結(二)
- 【三層學習之總結】
- 第三週學習總結
- oracle 學習總結篇三:SCN的理解Oracle
- 學習總結
- JavaScript學習總結(三)BOM和DOM詳解JavaScript
- [大學回憶錄]大三學習生活總結
- mysqlimport學習總結MySqlImport
- Maven學習總結Maven
- MyBatis 學習總結MyBatis
- awk 學習總結
- JNI 學習總結
- tkinter學習總結
- SVG學習總結SVG
- vue學習總結Vue
- WorkFlow學習總結
- HTML學習總結HTML
- Mybatis學習總結MyBatis
- Kafka 總結學習Kafka
- Typescript學習總結TypeScript
- 【TS】學習總結
- lua 學習總結
- vue 學習總結Vue
- HSF學習總結
- ElasticSearch 學習總結Elasticsearch
- BOM學習總結
- JavaWeb學習總結JavaWeb
- Storm學習總結ORM
- redis學習總結Redis
- JVM學習總結JVM
- Oracle學習總結Oracle
- Ajax學習總結
- WebRTC學習總結Web
- spark 學習總結Spark
- pandas 學習總結
- react學習總結React
- GCD 學習總結GC