2012-02-22 103 views
1

我認爲我理解委託模式是如何工作的,但這一部分對我來說並不明確。委託方法objective-c

如何創建返回結果的自定義委託方法? 返回值何去何從? 如何使用數據源與委託方法

這是我的意思。這是UITableViewDelegate的委託方法。根據返回值的表格行有不同的高度。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return 22; 
} 

我讀了關於該主題的蘋果文檔,但我仍然感到困惑。

請給我提供一些簡單的代碼示例,如果可能的話。

+1

表視圖具有對其委託的引用,所以電視向它的委託請求高度值..該值由電視使用,從而相應地調整行的大小。 dataSource和delegate在它們扮演不同的角色的意義上是不同的,但兩者的機制都是一樣的。 – 2012-02-22 10:34:29

回答

1

有一個非常好的和徹底的解釋herehere你可以看到示例代碼和一些關於委託模式的更多信息。

1

代表團是所謂的設計模式的一個示例。這裏是Apple documentation on delegation

在iOS上,UIApplication類提供了一個很好的委託範例。所述UIApplicationDelegate協議指定此(可選)方法:

- (void)applicationWillTerminate:(UIApplication *)application 

用作用於所述的UIApplication委託可以實現此方法,並且當應用程序要終止該方法將執行的類。因此,委託是一種允許在現成的對象中定製行爲的技術(在這種情況下爲UIA應用)。應用程序必須始終終止,但是應由每個應用程序的程序員來決定應用程序終止之前需要發生的事情。

蘋果的文檔狀態:

您應該使用此方法來執行任何最後的清理任務,爲您的應用程序,如釋放共享資源,節約了用戶數據,無效定時器和儲存足夠的應用程序狀態重新啓動時重新構建應用程序的界面。您執行此方法大約需要五秒鐘來執行任何任務並返回。如果該方法在時間到期之前沒有返回,系統可能會完全終止該過程。