-2

我需要一些幫助,瞭解目標C類聲明的語法, 或更具體目標C類聲明的語法

@interface SomeViewController : UITableViewController <UITableViewDataSource, UITableViewDelegate> 

什麼UITableViewDataSource,的UITableViewDelegate意味着

我的理解是,它在類實例化時收到這兩個對象。如果我錯了,請更正我。

+0

實際上'UITableViewController'已經符合協議'UITableViewDataSource'和' UITableViewDelegate'。因此在這裏指定它們是多餘的 – user102008

回答

1

當您聲明一個類時,<>語法允許您指定一個協議列表t他的班級必須遵守。

協議是的,你的類必須實現(當然你也可以指定可選的方法)方法「設置」。他們只有方法聲明,但程序員必須在他的類中實現它們。因爲它們是委託模式的心臟協議是在Objective-C真的很重要。

在此特定情況下,的UITableViewDelegate是與UITableViews涉及的對象必須遵守的協議。 Table View代表負責控制表格和它的單元格,例如設置它們的高度,配件​​等。

UItableViewDataSource是一個協議,它提供數據給一個表視圖的對象必須遵守。符合此協議的對象負責返回將在表格視圖中顯示的數據。

可以根據需要創建遲早會崩潰您的應用程序的警告當不使用的協議。

2

UITableViewDataSourceUITableViewDelegate是兩個協議,而不是類(或對象)。

當你聲明一個類時,你可以指定任意數量的使用< >括號語法類器具的協議。

協議是所需要的或者可選的方法的列表。將協議添加到類聲明中實際上並未實現或聲明該協議中的任何方法。你必須自己做。但是,如果您未實現所需的協議方法,則會收到編譯器警告。

0

UITableViewDataSource和的UITableViewDelegate的協議。要了解什麼協議是看this。協議類似於Java中的接口。

@interface SomeViewController : UITableViewController <UITableViewDataSource, UITableViewDelegate> 

此行只是意味着你聲明一個類「So​​meViewController」從「的UITableViewController」繼承並採用了兩個協議:UITableViewDataSource和的UITableViewDelegate