0

我有以下带有以下xib的代码:

@property (nonatomic, retain) IBOutlet UITableViewCell *cellLoadMore;

在此处输入图像描述

当我尝试 NSLog cellLoadMore 时,它​​返回 null,但是,当我尝试 NSLog 视图时,它具有价值。cellLoadMore 返回 null 的问题可能是什么?

下面是我的代码:

- (void)viewDidLoad{
  [super viewDidLoad];

  NSLog(@"cell load more %@", cellLoadMore_);
  NSLog(@"view %@", self.view);
}

控制台打印:

cell load more (null)
view <UITableView: 0x1284200; frame = (0 20; 320 460); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0xa393b0>; contentOffset: {0, 0}>

注意:我的类是 UITableView 的子类。

4

3 回答 3

1

我认为这就是正在发生的事情。您正在创建一个属性和一个实例变量,但您没有正确合成该属性。默认情况下,在 Xcode 4.4+ 上,该属性将被合成为_cellLoadMore而不是cellLoadMore_. 在旧版本上,如果您简单地使用,@synthesize cellLoadMore那么变量将为cellLoadMore. 所以基本上,如果你没有一行写着@synthesize cellLoadMore = cellLoadMore_,那么你有两个不同的变量。

于 2012-11-22T09:30:59.820 回答
0

在加载单元格之前,您可能正在“记录”。单元格将在第一次真正使用时加载(谷歌为“延迟加载”)。如果您访问单元格的视图,它确实被使用并因此被真正加载。您可以在此之后记录视图和单元格,它不应再为空。

于 2012-11-22T08:31:34.320 回答
0

我曾经遇到过这个问题,并设法通过将我的控制器从 UITableViewController 的子类更改为使用 UITableview 委托的 UIViewController 来解决它。不过,这很烦人。

于 2012-12-19T01:54:57.070 回答