nsmutablearray、nsmutabledictionary、nsmutableset
project型別為mac os x-commandline tooles
首先實現資料類,有三個屬性,分別是這三個集合類的物件
dataclass.h:
//
// dataclass.h
// kvo_qhy
//// created by ihefe36 on 15/3/6.
//#import
@inte***ce
dataclass : nsobject
@property (strong, nonatomic) nsmutablearray *array;
@property (strong, nonatomic) nsmutabledictionary *dictionary;
@property (strong, nonatomic) nsmutableset *set;
@end
dataclass.m:
//
// dataclass.m
// kvo_qhy
//// created by ihefe36 on 15/3/6.
//#import "dataclass.h"
@implementation
dataclass
- (instancetype)init
return
self;
}@end
實現觀察者類,用以接收通知
observer.h
//
// observer.h
// kvo_qhy
//// created by ihefe36 on 15/3/6.
//#import
@inte***ce
observer : nsobject
@end
observer.m
//
// observer.m
// kvo_qhy
//// created by ihefe36 on 15/3/6.
//#import "observer.h"
@implementation
observer
- (void)observervalueforkeypath:(nsstring *)keypath ofobject:(id)object change:(nsdictionary *)change context:(void *)context
if ([keypath isequaltostring:@"dictionary"])
if ([keypath isequaltostring:@"set"])
}@end
main.m
//
// main.m
// kvo_qhy
//// created by ihefe36 on 15/3/6.
//#import
#import "dataclass.h"
#import "observe.h"
int main(int argc, const
char * argv)
return
0;}
這兩者的實現方法類似,所以放到一起
容器類的kvo要結合kvc才能接收到通知
//將**插入帶main.m的todo下方,執行即可看到log
[[data mutablearrayvalueforkey:@"array"] addobject:@"testdata"];
[[data mutablesetvalueforkey:@"set"] addobject:@"testdata"];
實現方式與前兩者略有不同,但也是要結合kvc,目前是沒有類似的mutabledictionaryvalueforkey:的方法可供直接使用的
//這裡直接使用.語法獲取字典物件
[data willchangevalueforkey:@"dictionary"];
[data
.dictionary setobject:@"testvalue" forkey:@"testkey"];
[data didchangevalueforkey:@"dictionary"
];
iOS 自動移除KVO觀察者
對nsobject寫乙個分類 import inte ce nsobject fmobserverhelper void fm addobserver nsobject observer forkeypath nsstring keypath end 物件被釋放之前,會呼叫dealloc方法,其持有...
iOS開發 通訊方式之KVO
kvo即鍵值觀察者,它提供了乙個觀察者模式,用於監聽某個物件屬性值的變化,可以實現乙個觀察者,乙個被觀察者,多個接收者之間的通訊關係。kvo的工作流程 1.被觀察者屬性發生變化 child 物件的cleanvalue 發生變化 2.觀察者監聽到屬性的變化 kvo幫我們實現了觀察者的業務邏輯 3.觀察...
iOS開發之觀察者
觀察者事件 註冊必刪除 indexviewinformation sharedinstance addobserver self forkeypath selectedmoremodel options nskeyvalueobservingoptionnew nskeyvalueobserving...