我一直在學習有關iOS編程的委託和數據源,需要問一下,製作數據源協議時需要做什麼而不是委託協議?委託和數據源iOS
另外我怎樣才能實現一個委託中的許多相同的對象代表?示例一個具有許多獨特定製警報的對象。
- 編輯 -
用於第二部分的一個例子:
,其具有每四個不同的警報用不同的按鈕一個目的。由於對象需要通過成爲警報委託來指定每個按鈕的工作方式。我將如何設置委託方法來確定每個警報?
我一直在學習有關iOS編程的委託和數據源,需要問一下,製作數據源協議時需要做什麼而不是委託協議?委託和數據源iOS
另外我怎樣才能實現一個委託中的許多相同的對象代表?示例一個具有許多獨特定製警報的對象。
- 編輯 -
用於第二部分的一個例子:
,其具有每四個不同的警報用不同的按鈕一個目的。由於對象需要通過成爲警報委託來指定每個按鈕的工作方式。我將如何設置委託方法來確定每個警報?
這兩種類型的物體或多或少都有相同的表現方式,這是他們做的事情的問題。
委託類型對象響應另一個對象所採取的操作。例如,UITableViewDelegate
協議具有用於在用戶選擇表格中的特定行時執行動作的方法,例如didSelectRowAtIndexPath
。
數據源類型對象將數據提供給另一個對象。再次例如,UITableViewDataSource
協議具有諸如cellForRowAtIndexPath
和numberOfRowsInSection
的方法來指示應該在表格中顯示什麼。
這兩者在編譯方面並沒有很大的區別,它只是一種編碼風格,使得對象對代碼的用戶做的事情非常清楚。
編輯:
要回答你的第二個問題:如果你希望每個警報不同的反應,你需要編寫每個警報不同的委託。例如,如果您的某個警報是保存確認警報(也許您將覆蓋文件,並且彈出以確認用戶想要執行的操作),則您將擁有如下對象:
@interface SaveConfirmAlertDelegate : NSObject<UIAlertViewDelegate>
@end
而在@implementation
的SaveConfirmAlertDelegate
中,您將實現正確的保存功能,具體取決於用戶在警報中按下哪個按鈕。
當您創建一個警報視圖時,您可以指定委託對象應該是什麼,這不一定是self
。您可以將您的四位代表存儲爲不同的對象,並根據需要將它們設置爲警報。
我希望這可以清理東西
感謝您解釋我的第一個問題。我爲我的問題添加了一個例子。 – RMDan
@RMDan我爲你的第二個問題添加了一個額外的解釋,我希望能夠清楚一點 –
這非常有道理。我將不得不更多地瞭解代表團,但它開始有意義。 – RMDan