對iOS 中自定義delegate的理解

2021-06-25 13:02:10 字數 2090 閱讀 8510

delegate是ios開發中的非常重要的知識,也是必須掌握的,因為他用著很方便,跟廣播來比,更顯示出了他的優越性。
delegate在中文的書中被翻譯成了,**或者委託。顧名思義,就是本來該自己完成的工作,卻交給別人來做,也就是找了個**,委託給了別人。這就是**的意思,也是**的思想。其實在object-c來看,其實它的本質就是乙個協議而已,你繼承了協議,你就要完成協議中定義的方法。這樣實現這個這個delegate協議的類或者說是
controller便成了原來那個協議的**。但是這個協議,一般是在乙個類中定義的,也就是在那個想要委託別人幹活的類來定義的。

//

// fkgameview.h

// link

//// created by yeeku on 13-7-16.

//#import #import "fkgameservice.h"

#import "fklinkinfo.h"

#import "fkpiece.h"

@class fkgameview;

@protocol fkgameviewdelegate - (void) checkwin: (fkgameview*)gameview;

@end

@inte***ce fkgameview : uiview

// 遊戲邏輯的實現類

@property (nonatomic, strong) fkgameservice* gameservice; //①

// 連線資訊物件

@property (nonatomic, strong) fklinkinfo* linkinfo;

// 儲存當前已經被選中的方塊

@property (nonatomic, strong) fkpiece* selectedpiece;

@property (nonatomic, strong) iddelegate;

// 開始遊戲方法

- (void) startgame;

@end

這便定義了乙個delegate協議,也就是那個要委託別人的委託者或者叫做被**者。
//

// fkviewcontroller.h

// link

//// created by yeeku on 13-7-16.

//#import #import "fkgameview.h"

@inte***ce fkviewcontroller : uiviewcontroller

@property (strong, nonatomic) iboutlet uibutton *startbn;

@property (strong, nonatomic) iboutlet uilabel *timetext;

@end

//

// fkviewcontroller.m

// link

//// created by yeeku on 13-7-16.

//#import "fkviewcontroller.h"

#import "fkgameview.h"

#import "constants.h"

#import "fkpiece.h"

@inte***ce fkviewcontroller ()

@end

@implementation fkviewcontroller

- (void)checkwin:(fkgameview *)gameview

}@end

這裡便是那個被委託者或者**。
當然一定要加上這樣一句。gameview.delegate = self;
這樣就可以了。
當然上面是自定義的delegate,還有很多系統的delegate,系統的這裡就不再說了,思想都是如此,大同小異。

ios中自定義table view cell

跟著書上的範例做完了一般的table view,然後做做自定義 也遇到一些問題,最後終於解決了,記錄下怎麼弄出來的吧。知識點 1.自定義 cell的格式。2.自定義 cell的view類。3.使用自定義的view來呈現資料。一 自定義 cell的格式 新建xib檔案,拖table view cell...

IOS 自定義AlertView實現模態對話方塊

在windows應用程式中,經常使用模態 model 對話方塊來和使用者進行簡單的互動,比如登入框。在ios 應用程式中,有時我們也希望做同樣的事情。但ios的ui庫中,沒有模態對話方塊,最接近那個樣子的應該算是alertview。但僅用alertview,我們只能做文字提示,而不能和使用者做互動。...

IOS 自定義AlertView實現模態對話方塊

在windows應用程式中,經常使用模態 model 對話方塊來和使用者進行簡單的互動,比如登入框。在ios 應用程式中,有時我們也希望做同樣的事情。但ios的ui庫中,沒有模態對話方塊,最接近那個樣子的應該算是alertview。但僅用alertview,我們只能做文字提示,而不能和使用者做互動。...