KVC KVO簡單用法

2021-07-10 08:41:56 字數 1998 閱讀 1586

1.0 kvc(key-value-coding) :鍵值編碼。通過某些方法,訪問類的屬性。

建立乙個繼承於nsobject的person類

person.h
#import @inte***ce person : nsobject

@end

person.m
#import "person.h"

@implementation person

@end

並且對name屬性進行檢測

#import "viewcontroller.h"

#import "person.h"

#import "personmonitor.h"

@inte***ce viewcontroller ()

- (ibaction)test:(id)sender;

@end

@implementation viewcontroller

- (void)viewdidload

-(void)dealloc

- (ibaction)test:(id)sender

/** * kvc的**方法(當屬性改變時呼叫這個方法)

* * @param keypath @"name"

* @param object person

* @param change 改變的

* @param context 傳輸的物件

*/-(void)observevalueforkeypath:(nsstring *)keypath ofobject:(id)object change:(nsdictionary*)change context:(void *)context

給屬性賦值
[person setvalue:@"lala" forkey:@"name"];

person.name = @"lala";

訪問屬性值

[person valueforkey:@"name"]

2.0 kvo

key-value observing (kvo) 建立在 kvc 之上,它能夠觀察乙個物件的 kvc key path 值的變化。

建立乙個繼承於

nsobject的person類

person.h

#import @inte***ce person : nsobject

@end

#import "viewcontroller.h"

#import "person.h"

@inte***ce viewcontroller ()

- (ibaction)test:(id)sender;

@end

@implementation viewcontroller

- (void)viewdidload

- (ibaction)test:(id)sender

/** * kvo的**方法(當屬性改變時呼叫這個方法)

* * @param keypath @"name"

* @param object person

* @param change 改變的

* @param context 傳輸的物件

*/-(void)observevalueforkeypath:(nsstring *)keypath ofobject:(id)object change:(nsdictionary*)change context:(void *)context

-(void)dealloc

當屬性值改變是會呼叫**方法

mysql的簡單用法 mysql簡單用法

刪除使用者 drop user jack drop比delete刪除的優勢在於drop可以刪除使用者的許可權,更加徹底 更改使用者名稱 rename user jack to jacknew 使用者的都存在與user表中,更改名稱,許可權不變 更改使用者密碼 update mysql.user se...

oracle cursor 簡單用法

procedure changespecialdiscount compid in invarchar2 ccid in invarchar2 cono in invarchar2 is sum cc all number 14 4 0 wsp disc number 14 4 wspcl disc...

Oracle Trigger簡單用法

1.trigger 是自動提交的,不用commit,rollback 2.trigger最大為32k,如果有複雜的應用可以通過在trigger裡呼叫procedure或function來實現。3.語法 create or replace trigger on declare begin except...