IOS KVO的實現原理

來源:互聯網
上載者:User

標籤:class   ons   nsstring   運行時   margin   property   atomic   add   span   

 

#import "HMViewController.h"#import "HMPerson.h"@interface HMViewController ()@property (nonatomic, strong) HMPerson *p;@end@implementation HMViewController- (void)viewDidLoad{    [super viewDidLoad];        // 運行時機制:runtime        HMPerson *p = [[HMPerson alloc] init];    p.age = 20;        [p addObserver:self forKeyPath:@"age" options:NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew context:nil];        p.age = 30;    self.p = p;}- (void)dealloc{    [self.p removeObserver:self forKeyPath:@"age"];}/** *  當監控的某個屬性的值改變了就會調用 * *  @param keyPath 屬性名稱(哪個屬性改了?) *  @param object  哪個對象的屬性被改了? *  @param change  屬性的修改情況(屬性原來的值、屬性最新的值) *  @param context void * == id */- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{    NSLog(@"%@對象的%@屬性改變了:%@", object, keyPath, change);}@end

 

IOS KVO的實現原理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.