UITableView不显示数组中的数据

时间:2011-11-12 18:36:13

标签: iphone ios objective-c uitableview

代码:

在.h:

    NSMutableArray *contentArray;

我宣布我的阵列。


在.m

    - (void)viewDidLoad
    {
        [super viewDidLoad];

        contentArray = [[NSMutableArray alloc] initWithObjects:@"view", @"browse", @"create", nil];

        // Uncomment the following line to preserve selection between presentations.
        // self.clearsSelectionOnViewWillAppear = NO;

        // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
        // self.navigationItem.rightBarButtonItem = self.editButtonItem;
    }

我在我的视图中设置它确实加载了。

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

我将行数设置为数组计数。


    - (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] setText:[contentArray objectAtIndex:indexPath.row]];

        return cell;
    }

无。但是如果我这样做的话[&cell textLabel] setText:@" Hello World。"];"相反,它工作正常。

5 个答案:

答案 0 :(得分:1)

你在表中至少得到3个空行吗?如果是,那么只需更改您的代码

NSString *tempString = [your_array objectAtIndex:indexPath.row];
cell.textLabel.text = tempString; 

如果你甚至没有获得空字符串,那么在.h文件中创建数组的属性。在.m中合成它(也在delloc函数中释放它),最后在viewDidLoad中跟随

NSMutableArray tempContentArray = [[NSMutableArray alloc] arrayWithObjects:@"view", @"browse", @"create", nil];
self.contentArray=tempArray;

然后编写以下代码以获取单元格标题

NSString *tempString = [self.contentArray objectAtIndex:indexPath.row];
cell.textLabel.text = tempString; 

答案 1 :(得分:0)

尝试在init方法中初始化数组,或在设置数组后调用reloadData上的UITableView

答案 2 :(得分:0)

.m文件中的代码没问题。写属性.h文件合成并释放你的NSMutable数组.m文件它可能对你有帮助。

答案 3 :(得分:0)

只需使用以下代码行 //使用对象初始化nsarray。

-(void)viewDidLoad
{
NSArray *practice_ArrayForDisplayingEx=[NSArray alloc]initWithObjects:@"bhupi",@"bhupi",@"bhupi",@"bhupi",nil];

}


//then use in tableview.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *simpleTableIdentifier = @"SimpleTableItem";
   // UIButton *practice_takeTest_button;

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

    if (cell == nil)
    {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier]autorelease];
         }


    cell.textLabel.text =[practice_ArrayForDisplayingEx objectAtIndex:indexPath.row];
    cell.textLabel.font=[UIFont fontWithName:@"Arial" size:15];



    return cell;
}

确保包含UITableViewDelegate& .h文件中的UITableViewDataSourse prtocol。

希望它会帮助你..

答案 4 :(得分:0)

确保您的.h实现了tableview委托和数据源......应该看起来像这样

 @interface myClass : UITableViewController <UITableViewDelegate, UITableViewDataSource>

然后在ViewDidLoad方法中生成此代码

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