国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

KVC&&KVO初見

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

image

Look,這是一個很簡單的要求,點擊Add me,age +1.

想一想的話很簡單的,設置一個屬性Nsinteger age,點擊button add me,直接加1在重新顯示Lable就好啦,不過,我們今天是來練習KVC和KVO的,蘋果的鍵值編程哈哈

首先我們定義一個Human的類,并且完成了它的初始化方法

#import <Foundation/Foundation.h>@interface human : NSObject@PRoperty (nonatomic,assign) NSString *name;@property (nonatomic,assign) NSInteger age;-(id)initHuman:(NSString *)Initname hisage:(NSInteger) Initage;@end
#import "human.h"@implementation human-(id)initHuman:(NSString *)Initname hisage:(NSInteger)Initage{    if(self=[super init]){        _name=Initname;        _age=Initage;           }    return self;}@end

很普通很簡單。。。

下面在ViewControler中調用該類,完成對這個人的年齡的增加

#import <UIKit/UIKit.h>#import "human.h"@interface ViewController : UIViewController<UIWebViewDelegate>{    human *keith;}@property (weak, nonatomic) IBOutlet UILabel *Infoshow;- (IBAction)Addme:(id)sender;@end
#import "ViewController.h"@interface ViewController ()@end@implementation ViewController-(void)viewWillAppear:(BOOL)animated{    [super viewWillAppear:animated];       keith=[[human alloc]initHuman:@"keith" hisage:26];    self.Infoshow.text=[NSString stringWithFormat:@"name is %@,age is %ld",keith.name,keith.age];    [keith addObserver:self forKeyPath:@"age" options:NSKeyValueObservingOptionOld|NSKeyValueObservingOptionNew context:nil];//}- (IBAction)Addme:(id)sender {    keith.age+=1;      }-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{    if ([keyPath isEqualToString:@"age"] && object==keith) {          self.Infoshow.text=[NSString stringWithFormat:@"name is %@,age is %ld",keith.name,keith.age];//添加對keith keyPath的監視    }}-(void)dealloc{    [keith removeObserver:self forKeyPath:@"age"];//不用的時候移除注冊}@end

可以看出如果通過這樣的模式有個好處是能減少模型和視圖的耦合關鍵,模型只管運算,視圖的變化通過KVO監視鍵值的變化,自動更新。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 德阳市| 比如县| 江油市| 昭苏县| 高密市| 永平县| 玉山县| 海盐县| 大名县| 旬邑县| 太和县| 南投市| 光泽县| 军事| 方城县| 太仆寺旗| 丹凤县| 马鞍山市| 罗江县| 怀集县| 东莞市| 宝应县| 额尔古纳市| 繁昌县| 扬中市| 大埔区| 阿克苏市| 当涂县| 吉隆县| 安阳县| 安泽县| 昌平区| 龙川县| 柏乡县| 东港市| 康马县| 汨罗市| 衡山县| 利津县| 宁国市| 尼勒克县|