亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ios開發--KVO淺析

2019-11-14 19:21:58
字體:
來源:轉載
供稿:網友

目標:監聽NSMutableArray對象中增加了什么

 

代碼如下:

C代碼 復制代碼 收藏代碼
  1. - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];  
  4.   
  5.     self.dataArray = [NSMutableArray arrayWithObject:@"1"];  
  6.     [self addObserver:self forKeyPath:@"dataArray" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:NULL];  
  7.        
  8. }  
- (void)viewDidLoad{    [super viewDidLoad];    self.dataArray = [NSMutableArray arrayWithObject:@"1"];    [self addObserver:self forKeyPath:@"dataArray" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:NULL];     }

 

C代碼 復制代碼 收藏代碼
  1. - (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context  
  2. {  
  3.     NSLog(@"%@", keyPath);  
  4.     NSLog(@"%@", object);  
  5.     NSLog(@"%@", change);  
  6. }  
- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{    NSLog(@"%@", keyPath);    NSLog(@"%@", object);    NSLog(@"%@", change);}

 

C代碼 復制代碼 收藏代碼
  1. - (IBAction)add:(id)sender  
  2. {  
  3.     NSArray *addData = [NSArray arrayWithObjects:@"11", @"12", @"13", nil];  
  4.     [self.dataArray addObjectsFromArray:addData];  
  5.       
  6.     self.dataArray = [NSMutableArray arrayWithObject:@"2"];  
  7. }  
- (IBAction)add:(id)sender{    NSArray *addData = [NSArray arrayWithObjects:@"11", @"12", @"13", nil];    [self.dataArray addObjectsFromArray:addData];        self.dataArray = [NSMutableArray arrayWithObject:@"2"];}

 

輸入日志:

C代碼 復制代碼 收藏代碼
  1. 2013-01-15 16:05:10.120 KVOTest[2199:907] dataArray  
  2. 2013-01-15 16:05:10.121 KVOTest[2199:907] <ZZTViewController: 0x20846590>  
  3. 2013-01-15 16:05:10.123 KVOTest[2199:907] {  
  4.     kind = 1;  
  5.     new =     (  
  6.         2  
  7.     );  
  8.     old =     (  
  9.         1,  
  10.         11,  
  11.         12,  
  12.         13  
  13.     );  
  14. }  
2013-01-15 16:05:10.120 KVOTest[2199:907] dataArray2013-01-15 16:05:10.121 KVOTest[2199:907] <ZZTViewController: 0x20846590>2013-01-15 16:05:10.123 KVOTest[2199:907] {    kind = 1;    new =     (        2    );    old =     (        1,        11,        12,        13    );}

 

 

經過測試得如下結論:kvo監聽的是對象指針的變動,NSString、int、float等對象的變動(abc = @"123"、abc = 12、abc = 12.2)皆為指針的變動,所以通過此方式來捕捉array的變化是不可行的

 

但,我們可以通過此方式來做控件屬性的變動。如下:

C代碼 復制代碼 收藏代碼
  1. - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];  
  4.       
  5.     self.personObject = [PersonObject personObjectWithBankInstance:[BankObject bankObjectWithAccountBalance:10]];  
  6.       
  7.     [self.personObject addObserver:self forKeyPath:@"bankInstance.accountBalance" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:NULL];    // 此處注意是監聽personObject對象下的bankInstance的accountBalance變化  
  8. }  
- (void)viewDidLoad{    [super viewDidLoad];        self.personObject = [PersonObject personObjectWithBankInstance:[BankObject bankObjectWithAccountBalance:10]];        [self.personObject addObserver:self forKeyPath:@"bankInstance.accountBalance" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:NULL];    // 此處注意是監聽personObject對象下的bankInstance的accountBalance變化}

 

C代碼 復制代碼 收藏代碼
  1. - (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context  
  2. {  
  3.     NSLog(@"%@", keyPath);  
  4.     NSLog(@"%@", object);  
  5.     NSLog(@"%@", change);  
  6. }  
- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{    NSLog(@"%@", keyPath);    NSLog(@"%@", object);    NSLog(@"%@", change);}

 

C代碼 復制代碼 收藏代碼
  1. - (IBAction)add:(id)sender  
  2. {  
  3.     [self.personObject.bankInstance setAccountBalance:2111];  
  4. }  
- (IBAction)add:(id)sender{    [self.personObject.bankInstance setAccountBalance:2111];}

 輸出日志:

C代碼 復制代碼 收藏代碼
  1. 2013-01-15 16:05:10.111 KVOTest[2199:907] bankInstance.accountBalance  
  2. 2013-01-15 16:05:10.116 KVOTest[2199:907] <PersonObject: 0x20856180>  
  3. 2013-01-15 16:05:10.118 KVOTest[2199:907] {  
  4.     kind = 1;  
  5.     new = 2111;  
  6.     old = 10;  
  7. }  
2013-01-15 16:05:10.111 KVOTest[2199:907] bankInstance.accountBalance2013-01-15 16:05:10.116 KVOTest[2199:907] <PersonObject: 0x20856180>2013-01-15 16:05:10.118 KVOTest[2199:907] {    kind = 1;    new = 2111;    old = 10;}

 

如有問題,請留言共同探討。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久电影一区二区| 国产福利成人在线| 在线观看精品国产视频| 国产精品久久一| 亚洲综合第一页| 国产精品第100页| 色与欲影视天天看综合网| 久久久久久久久中文字幕| 俺去亚洲欧洲欧美日韩| 国产精品成人v| 国产精品久久久久77777| 久久久亚洲国产| 成人久久久久爱| 91精品久久久久久| 一区二区日韩精品| 国产视频久久网| 日韩网站免费观看| 国产精品久久一区| 久久精品视频在线播放| 亚洲精品之草原avav久久| 97精品欧美一区二区三区| 国产精品观看在线亚洲人成网| 5278欧美一区二区三区| 亚洲精品99999| 一区二区在线视频| 色婷婷av一区二区三区在线观看| 亚洲一区二区久久久久久久| 欧美日韩国产色视频| 不卡av电影在线观看| 欧美电影免费播放| 欧美日韩成人在线播放| 国产日韩欧美影视| 欧美性猛交xxxx富婆| 欧美特黄级在线| 精品视频中文字幕| 欧美福利视频在线观看| 日韩亚洲第一页| 欧美超级免费视 在线| 成人激情在线观看| 国产精品视频白浆免费视频| 欧美大胆在线视频| 欧美午夜xxx| 日韩电影免费观看在线观看| 欧美色道久久88综合亚洲精品| 久久精品视频99| 51视频国产精品一区二区| 国产在线观看精品一区二区三区| 操人视频在线观看欧美| 日韩三级成人av网| 少妇激情综合网| 亚洲国产精品美女| 中文字幕av一区中文字幕天堂| 亚洲免费成人av电影| 91国在线精品国内播放| 国产精品三级久久久久久电影| 欧美限制级电影在线观看| 国产91亚洲精品| 亚洲a∨日韩av高清在线观看| 亚洲美女视频网站| 日韩毛片在线观看| 国产精选久久久久久| 激情懂色av一区av二区av| 国产福利成人在线| 亚洲www在线| 亚洲国产成人av在线| 国产精品麻豆va在线播放| 欧美又大又粗又长| 久久久精品电影| 日韩av免费在线观看| 日韩亚洲在线观看| 亚洲精品电影网站| 91免费的视频在线播放| 中文字幕av一区中文字幕天堂| 国产精品视频网址| 亚洲精品电影久久久| 久久久久女教师免费一区| 国产一区视频在线播放| 欧美成人小视频| 欧美风情在线观看| 91最新国产视频| 国产乱肥老妇国产一区二| 亚洲成人av在线播放| 亚洲男人的天堂在线| 国产精品草莓在线免费观看| 久久中文字幕在线| 国产精品成人国产乱一区| 国产精品日韩欧美大师| 亚洲在线免费视频| 亚洲片在线资源| 亚洲性69xxxbbb| 亚洲电影免费观看高清完整版| 国产999在线观看| 456亚洲影院| 狠狠色噜噜狠狠狠狠97| 国产91ⅴ在线精品免费观看| 色悠悠国产精品| 欧美人与性动交a欧美精品| 欧美日韩国产精品一区二区不卡中文| 庆余年2免费日韩剧观看大牛| 91网在线免费观看| 国产精品国产亚洲伊人久久| 欧美日韩国产一区在线| 国产亚洲精品综合一区91| 国产亚洲福利一区| 国产在线视频91| 久久国产精品免费视频| 欧美性猛交xxxx偷拍洗澡| 久久久久久久电影一区| 亚洲free嫩bbb| 欧美日韩精品在线播放| 欧美日韩中文在线| 国模精品系列视频| 欧美中文字幕在线视频| 菠萝蜜影院一区二区免费| 国产精品自产拍高潮在线观看| 亚洲护士老师的毛茸茸最新章节| 亚洲精品www久久久久久广东| 成人黄色生活片| 亚洲一区二区三区视频| 久久久久久久久久久亚洲| 国产精品美腿一区在线看| 成人在线激情视频| 欧美裸体xxxx极品少妇软件| 亚洲成人激情视频| 国产精品免费小视频| 欧美激情国内偷拍| 欧美中文在线免费| 精品欧美国产一区二区三区| 欧美成人免费va影院高清| www.欧美精品| 亚洲免费影视第一页| 欧美中文字幕在线播放| 日韩精品在线第一页| 欧美激情a∨在线视频播放| 国产精品香蕉av| 九九热精品视频在线播放| 成人a视频在线观看| 欧美日韩国产限制| 欧美精品videosex牲欧美| 成人激情av在线| 另类图片亚洲另类| 精品国产鲁一鲁一区二区张丽| 亚洲香蕉av在线一区二区三区| 欧美视频国产精品| 欧美大片免费看| 久久躁日日躁aaaaxxxx| 永久免费毛片在线播放不卡| 中文字幕少妇一区二区三区| 欧美精品videosex极品1| 久久天天躁夜夜躁狠狠躁2022| 久久国产天堂福利天堂| 91精品国产自产在线观看永久| 久久久久久久久中文字幕| 国产精品日韩在线观看| 欧美激情中文字幕在线| 欧美日韩另类字幕中文| 精品国内产的精品视频在线观看| 国产不卡一区二区在线播放| 欧美激情乱人伦一区| 97久久精品国产| 日韩高清免费在线| 日产日韩在线亚洲欧美| 国产精品自拍视频| 日韩一级黄色av|