當前位置:編程學習大全網 - 源碼下載 - Objective-C 編程:哪壹個是 delegate (代理)?

Objective-C 編程:哪壹個是 delegate (代理)?

關於代理,我也是最近才搞明白的。先推薦斯坦福視頻教程,第五集裏邊那個笑臉的demo。那個就是壹個典型的代理。先把那個demo搞懂,然後再試著自己寫壹遍那個代碼。這樣子,應該就能把代理理解壹半了。然後再試著參考它的代碼,寫幾個自己的delegate。差不多應該就沒問題了。

然後說下我的理解吧。

舉個例子,假設兩個View:superView 和 subView,在subView中,實現了Touchesbegin 函數。

現在要做的是:當妳點擊subview的時候,要讓superview中的某個變量+1,這時就需要用到delegate。

//SubView.h

@protocol SubViewDelegate<NSObject>

-(void)changeValue:(id)sender; //這個方法可以在subView中調用,在代理中實現

@end

@interface SubView: UIView {

id<SubViewDelegate> delegate; //這個是保存代理的變量。

}

@property(assign)id<SubViewDelegate> delegate;

@end

//SubView.m

@implementation SubView

@synthesize delegate;

......................

......................

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *) event {

[self.delegate changeValue:self];//這個就是調用了。。

}

@end

//SuperView.m中實現changeValue函數

....................

//SuperView.m中某個位置

SubView *subView = [[SubView alloc]init];

subView.delegate = self;//講subView的delegate設置為superView。保存在delegate變量中。

-(void)changeValue:(id)sender

{

someVar++;

NSLog(@"in changeValue function.");

}

.........

  • 上一篇:如何從qq獲取ip地址
  • 下一篇:梅山pc機源代碼
  • copyright 2024編程學習大全網