Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UITableView::实例化时的错误(内部详细描述)_Iphone_Ios_Ipad - Fatal编程技术网

Iphone UITableView::实例化时的错误(内部详细描述)

Iphone UITableView::实例化时的错误(内部详细描述),iphone,ios,ipad,Iphone,Ios,Ipad,我试图缩小iOS应用程序中两个独立的UITableView实例的问题。也许我在UITableView上设置了一个不好的属性,或者它是其他东西,但以下是两者的症状,尽我所能确定 以下两个错误都发生在第一次创建表并加载数据时。但是,如果我随后拖动并释放(从而成功地滚动了表格,哪怕是一点点),这两个bug都会立即消失 我无法点击任何行(从未发送代理回调) 不显示任何数据(好像该表为空) 再一次,当我尝试在桌子上拖动时,这两个bug立即消失。我还应该提到,它们并非100%都会发生。我猜这可能意味着我

我试图缩小iOS应用程序中两个独立的UITableView实例的问题。也许我在UITableView上设置了一个不好的属性,或者它是其他东西,但以下是两者的症状,尽我所能确定

以下两个错误都发生在第一次创建表并加载数据时。但是,如果我随后拖动并释放(从而成功地滚动了表格,哪怕是一点点),这两个bug都会立即消失

  • 我无法点击任何行(从未发送代理回调)
  • 不显示任何数据(好像该表为空)
再一次,当我尝试在桌子上拖动时,这两个bug立即消失。我还应该提到,它们并非100%都会发生。我猜这可能意味着我错过了某种比赛条件

这些表是UITableView的编程实例化子类(通过initWithFrame:)。下面是我在子类上重写的构造函数:

- (id) init
{
if((self = [super initWithFrame:CGRectMake(0, 0, POST_WIDTH, 0)]))
{
    self.scrollsToTop = YES;
    self.dataSource = self;
    self.delegate = self;
    self.rowHeight = POST_DEFAULT_HEIGHT;
    self.delaysContentTouches = YES;
    self.backgroundColor = [UIColor clearColor];
    self.separatorColor = [UIColor clearColor];   
    self.scrollIndicatorInsets = UIEdgeInsetsMake(0, 0, 0, 2);
    self.showsVerticalScrollIndicator = NO;
}
return self;
}
重述一下:创建每个表时,上面两个错误中的零个、一个或两个会随机出现在每个表中,但只要稍微滚动一下表就会消失

谢谢你的耐心,因为我很困惑:(


FWIW,它发生在iPhone和iPad上,包括运行iOS5的模拟器。

我假设您的问题是由于数据源和委托造成的。请尝试为创建和使用tableView的类设置数据源和委托

更改子类中的以下代码

self.dataSource = self;
self.delegate = self;
像这样的超级阶级

 tableView.dataSource = self;
 tableView.delegate = self;

用一些代码编辑。当然,有很多委托方法等等……但是为了避免大量粘贴大型文件,这是我能提供的最相关的。self.dataSource=self;和self.delegate=self;作为UITableView的子类?听起来是个糟糕的主意,你应该有一个UITableViewController,并设置委托和在你的tableview上的数据源。啊,是的。我看到我在重构一些东西的时候,对这个很马虎,而且我的鼻子太靠近代码太久了,以至于我完全错过了这个facepalm