2010-05-11 37 views
2

一個簡單的問題,我設置了UITableView的委託,並且我有一個關於設置委託和數據源屬性的問題。我注意到委託和數據源的屬性不可用,我認爲採用這些協議會使它們可用。但我現在認爲我可能有我的委託類的超類錯誤。用於委託的UITableView超類?

目前我有:

-(void)viewDidLoad { 
    TestDelegate *tempDelegate = [[TestDelegate alloc] init]; 
    [self setMyDelegate:tempDelegate]; 
    // setDelegate 
    // setDataSource 
    [tempDelegate release]; 
    [super viewDidLoad]; 
} 

我對TestDelegate接口的樣子:

@interface TestDelegate : NSObject <UITableViewDelegate, UITableViewDataSource> { 
    NSArray *listData; 
    int myCounter; 
} 

我可以問,如果上面的應該是:

@interface TestDelegate : UITableView <UITableViewDelegate, UITableViewDataSource> { 
    NSArray *listData; 
    int myCounter; 
} 

加里

編輯:我認爲它可能是在正確的軌道上:我的委託superClass應該是NSObject,我也有一個在Interface Builder中的UITableView。

我已添加@property(nonatomic,retain)IBOutlet UITableView * myTableView;在Xcode中,並將其連接到IB中的UITableView。我現在可以通過IBOutlet訪問Xcode中的委託和數據源屬性。

+0

這似乎不是一個問題。 「代表和數據源的屬性不可用」是什麼意思? - 一個UITableView具有這些屬性。此外,「採用協議會使它們可用」是什麼意思? – 2010-05-11 10:20:03

+0

嗨保羅,我感到困惑,基本上我試圖在Xcode中設置UITableView> delegate和UITableView> dataSource,但對如何做到這一點感到困惑。我所缺少的是像IB中添加的所有項目,如果您想通過Xcode訪問它們,您需要使用IBOutlet創建一個指向相應對象的指針。 – fuzzygoat 2010-05-11 10:29:37

回答

3

,有子類UITableView並且僅符合UITableViewDelegateUITableViewDatasource協議之間的差。

如果您在表格視圖本身需要不同的行爲,您可能想要子類UITableView。 - >大多數時候你不會想這樣做

UITableView有一個delegatedataSource屬性,您可以將其分配給符合相應協議的對象。

如果您想要頂級訪問delegatedataSource屬性,則需要子類UITableViewController(不符合代表協議,如果你的子類UITableViewController

+0

嗨,雅各,你的權利,我感到困惑於如何通過Xcode訪問我的UITableView在IB中,並在正確的位置尋找解決方案。您的時間和意見非常感謝。 – fuzzygoat 2010-05-11 10:38:23

+0

@fuzzygoat謝謝。 – 2010-05-11 10:40:59

+0

@fuzzygoat你能接受這個答案嗎?謝謝! – 2010-05-20 15:59:53