2010-10-21 35 views
1

在我的應用程序更新numberOfRowsInSection我允許用戶NSString的新行添加到一個UITableView。我將這些新字符串保存在NSMutableArray * dataArray如何使用的NSMutableArray計數

因此,對於numberOfRowsInSection,我返回[dataArray count],但它似乎只是一直返回0,所以我的表不是自動填充的。

如果有幫助,當我做的的NSLog [dataArray中的計數]作爲添加更多的條目,它一直其餘爲0。爲什麼沒有增加?

任何幫助?

+0

檢查你的dataArray var是否被創建(而不是零) – Vladimir 2010-10-21 10:19:49

回答

4

不看@你的代碼,這是無法預測的原因..

那麼你也可以嘗試HardLuck ...下面:

首先嚐試的NSLog你dataArray中來請檢查是否記錄是否加入。

這是它的確定......你所得到的記錄。

那麼你錯過了一件事。

重新加載表.. [的tableView reloadData];

我認爲這肯定會幫助you..otherwise把一些代碼在這裏。

+0

我有同樣的問題,我們是否需要在viewDidLoad方法中重載數據table view? – Harish 2013-04-18 17:47:56

+0

@opensourcelover不需要..但你需要重新加載TableView,你的Array被object.i.e填充之後,objets被添加到你的Array中,然後simlpy重新加載你的tableview。 – 2013-04-19 08:35:00

3

你初始化了你的Array。以下是我如何做到這一點 - 提出更好的方法!

.H:

@interface RootViewController : UITableViewController { 
NSArray *array; 
} 

@property (nonatomic, retain) NSArray *array; 

@end 

.M:

@implementation RootViewController 
@synthesize array; 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    NSMutableArray *mArry = [[NSMutableArray alloc] init]; 
    [mArry addObject:@"An ObecjT"]; 
    self.array = mArry; 
    [mArry release]; 

} 
// Customize the number of rows in the table view. 
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return [array count]; 
} 


// Customize the appearance of table view cells. 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *CellIdentifier = @"Cell"; 

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

    // Configure the cell. 
    cell.textLabel.text = [array objectAtIndex:indexPath.row]; 

    return cell; 
} 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    NSMutableArray *aNewArray = [[NSMutableArray alloc] initWithArray:array]; 
    [aNewArray addObject:@"Your Object"]; 
    self.array = aNewArray; 
    [aNewArray release]; 
    [self.tableView reloadData]; 

} 
- (void)viewDidUnload { 
    self.array = nil; 
} 


- (void)dealloc { 
    [array release]; 
    [super dealloc]; 
} 
1

你設置了的UITableView在Interface Builder委託?請檢查一下。

如果已經添加了,那麼你必須檢查與dataArray中無論是有記錄與否。