0

我有一个 nslog,它成功地告诉我我将加载到动态单元格中的信息就在那里。但是,我发现我的 tableView 根本没有使用对象“dogs”加载数组“dogs”,因为 name11Label 的 nslog 返回 null,尽管 viewDidLoad 中有 dog 的值。我需要做什么来启动 tableView?(.h 确实为我的“tableView”提供了一个 iboutlet 和一个属性(只是为了确保),并且还有一个用于 cell11.h 的导入)

.m 文件

-(void)viewDidLoad{
...
     self.tableview.delegate = self;
...
}

    - (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section {
        if ( dogs != NULL ) {
            return [dogs count];
        }
        return 0;
    }

    - (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath {
       Cell11 *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell11"];

        if (cell == nil)
        {
            cell = [[[Cell11 alloc] initWithFrame:CGRectZero reuseIdentifier:@"Cell11"] autorelease];  //I know that this method is depreciated, but it is not the source of this problem
        }
        NSDictionary *itemAtIndex =(NSDictionary *)[dogs objectAtIndex:indexPath.row];
         cell.name11Label.text = [itemAtIndex objectForKey:@"dogs"];
         NSLog(@"dogs array = %@", dogs);   //returns correct information of the object dogs
         NSLog(@"%@", cell.name11Label.text);   //returning null even though "dogs" in viewDidLoad is showing a result;

         return cell;

    }

单元格11.h

#import <UIKit/UIKit.h>

@interface Cell11 : UITableViewCell
@property (nonatomic, strong) IBOutlet UILabel *name11Label;

@end

单元格11.m

#import "Cell11.h"

@implementation Cell11
@synthesize name11Label;

@end
4

3 回答 3

0

您是否使用 UITableViewDataSource 协议(上述方法)将 UITableView 的“dataSource”属性分配给对象?

于 2012-11-09T20:53:34.090 回答
0

改变:

Cell11 *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell11"];

Cell11 *cell = [tv dequeueReusableCellWithIdentifier:@"Cell11"];

tableView 可能没有正确连接。

nslog 语句永远不会被调用。把它移到上面:

NSLog(@"%@", cell.name11Label);
return cell;

此外,您正在使用 cgrect 零初始化单元格,它不会显示任何内容。确保它具有预期的高度和宽度(例如 CGRectMake(0.0f, 0.0f, 320.0f, 50.0f))

如果单元格仍然不显示,您是在设置完数组 dogs 后在 tableview 上调用 reloadData 吗?

于 2012-11-09T20:59:08.883 回答
0

首先:返回后的 NSLog 永远不会被调用。

    NSLog(@"%@", cell.name11Label); 
    return cell;
}

第二:控制从界面构建器的表格视图拖动到您的类。并确保连接dataSource正确。

于 2012-11-09T21:01:58.410 回答