如果我在界面構建器中創建一個tableview並將數據源和委託連接到文件所有者那裏,那麼我是否也需要在所述viewcontroller的實現中執行此操作?委託語法
@interface myViewController : UIViewController **<UITableViewDataSource**, **UITabBarControllerDelegate>**
即手動指定協議遵守?
謝謝,
如果我在界面構建器中創建一個tableview並將數據源和委託連接到文件所有者那裏,那麼我是否也需要在所述viewcontroller的實現中執行此操作?委託語法
@interface myViewController : UIViewController **<UITableViewDataSource**, **UITabBarControllerDelegate>**
即手動指定協議遵守?
謝謝,
當從接口生成器設置委託和數據源時,似乎沒有理由指定該類符合哪些協議。
它沒有手動指定它們,因爲語言是非常動態的,調用委託方法的這個過程是在運行時完成的,而不必確定對象是否具有所需的方法。
只有在代碼中設置委託/數據源時,纔會進行一些靜態類型檢查,以確定委託/數據源是否符合所需的協議。
底線:寫出來。你會得到xcode自動完成,在某些情況下可能會出現一些警告,代碼文檔和一些OCD實現。
是的。在代碼中指定類實現協議是告訴XIB您可以建立連接並告訴編譯器必須實現協議中所有必需的方法(如果不是,則會引發警告) 。
技術上你可以沒有他們,但你不應該這樣做。
你試過了嗎?它沒有工作嗎?
當您在頭文件中添加UITableViewDataSource和UITabBarControllerDelegate時,您只能在interfacebuilder中連接它們。
只是不要忘記在你的實現中實現所需的方法(datasource & delegate)。當你忘記它們時,你會得到一個警告。