2011-12-22 139 views
0

我現在很迷路,不知道問題出在哪裏。UITableView不會顯示數據

我創建了一個單視圖應用程序(具有ARC &故事板)中,加入一的tableview到MAINVIEW,它的委託和數據源設置爲我的ViewController和實施

- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return [self.games count]; 
} 

- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"]; 
    if(cell == nil) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"]; 
    } 

    cell.textLabel.text = [self.games objectAtIndex:[indexPath row]]; 

    return cell; 
} 

作爲協議的方法。

self.games是一個帶有一些NSStrings的數組。 當我構建並運行應用程序時,出現一個空的TableView ...

我在做什麼錯了?

+1

'cell.textLabel.text = @「這是正常的測試文本」'起初嘗試that.If它的工作原理那麼問題是您的數組既不在'tableview'如果沒有作品。首先檢查一下,然後告訴我問題在哪裏? – Emon 2011-12-22 10:00:05

+0

它真的和我的陣列有關。 我設置'numberOfRowInSection'只返回5,你建議和它的工作。 我正在初始化我的數組,如下所示:'self.games = [[NSArray alloc] initWithObjects:@「Red」,@「Green」, @「Blue」,@「Indigo」,@「Violet」,nil] ;' (和它的一個弱的非原子性質),那怎麼會不起作用? – tonekk 2011-12-22 10:21:19

+0

其實我想知道問題在哪裏,'self.games'Array問題或'tableview'問題。根據我對你的問題,你有最終結果嗎? '這個正常的測試文本'是在tableview單元格中打印的嗎? – Emon 2011-12-22 11:11:10

回答

2

您是否將您的tableView的數據源設置爲委託源&?

您需要使您的課程符合UITableViewDelegateUITableViewDataSource協議。 (cellForRowAtIndexPath:UITableViewDataSource協議)

通過在.h文件中使用尖括號中的類接口定義,即這樣做:

@interface myViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {...} 
.m文件

,那麼你需要設置的委託文件的所有者tableView和dataSource。這是這樣做的 -

[tableView setDelegate:self]; 
[tableView setDataSource:self]; 

給這個鏡頭。

+0

這是一致的,我確實使用了這些協議。 而我在界面生成器中設置的委託和數據源。 – tonekk 2011-12-22 10:06:07

+0

然後嘗試'[tableView reloadData];'然後ios將刷新表內容和您的代碼在這些代表將被使用。 – 2011-12-22 10:14:21

+0

仍然沒有工作,如果我使用數組(看上面的註釋),一定是錯誤的數組... – tonekk 2011-12-22 10:46:03

0

您是否嘗試使遊戲屬性強而不弱?我對ARC不熟悉,但似乎在您使用它之前,您的屬性可能會設置爲零。

+0

我看着弧有點,並從我的理解,遊戲屬性應該是強大的。你指向一個自動釋放數組,當你做的那個方法結束時,該數組可以被釋放並且遊戲屬性被設置爲零。 – Darren 2011-12-23 00:38:12

0

我想你錯過了這段代碼。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
return 1; 

}