2013-08-04 37 views
0

如果我在界面構建器中創建一個tableview並將數據源和委託連接到文件所有者那裏,那麼我是否也需要在所述viewcontroller的實現中執行此操作?委託語法

@interface myViewController : UIViewController **<UITableViewDataSource**, **UITabBarControllerDelegate>** 

即手動指定協議遵守?

謝謝,

回答

3

當從接口生成器設置委託和數據源時,似乎沒有理由指定該類符合哪些協議。

它沒有手動指定它們,因爲語言是非常動態的,調用委託方法的這個過程是在運行時完成的,而不必確定對象是否具有所需的方法。

只有在代碼中設置委託/數據源時,纔會進行一些靜態類型檢查,以確定委託/數據源是否符合所需的協議。

底線:寫出來。你會得到xcode自動完成,在某些情況下可能會出現一些警告,代碼文檔和一些OCD實現。

1

是的。在代碼中指定類實現協議是告訴XIB您可以建立連接並告訴編譯器必須實現協議中所有必需的方法(如果不是,則會引發警告) 。

技術上你可以沒有他們,但你不應該這樣做。

-1

你試過了嗎?它沒有工作嗎?

當您在頭文件中添加UITableViewDataSource和UITabBarControllerDelegate時,您只能在interfacebuilder中連接它們。

只是不要忘記在你的實現中實現所需的方法(datasource & delegate)。當你忘記它們時,你會得到一個警告。