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 numberOfRowsInSection语法_Iphone_Xcode - Fatal编程技术网

Iphone 混淆UITableView numberOfRowsInSection语法

Iphone 混淆UITableView numberOfRowsInSection语法,iphone,xcode,Iphone,Xcode,我有一个选项卡视图,为每个选项卡加载一个表视图 第一个选项卡界面声明UITableView*tableView; 第二个选项卡界面声明UITableView*favTableView 为第二个表声明行数时,此操作有效: - (NSInteger)tableView:(UITableView *)favTableView numberOfRowsInSection:(NSInteger)section { return [favList count]; } 但如果我将其更改为: - (N

我有一个选项卡视图,为每个选项卡加载一个表视图

第一个选项卡界面声明UITableView*tableView; 第二个选项卡界面声明UITableView*favTableView

为第二个表声明行数时,此操作有效:

- (NSInteger)tableView:(UITableView *)favTableView numberOfRowsInSection:(NSInteger)section {
    return [favList count];
}
但如果我将其更改为:

- (NSInteger)favTableView:(UITableView *)favTableView numberOfRowsInSection:(NSInteger)section {
    return [favList count];
}
当我尝试加载第二个选项卡时,应用程序崩溃

我的错误是(a)不理解哪一个是变量/保留字,(b)给每个表一个唯一标识符,即favTableView,而不是重用tableView


另外,第二个表没有标题栏,正如您所指出的,委托可能使用预设的方法名称。不重用tableView不应该存在功能问题,因为您可能会重用favTableView。标题栏问题应该通过在自定义tableView中手动设置标题的属性来解决。如果要查找标题,则必须设置高度和大小的属性。

正如您所指出的,委托可能使用预先设置的方法名称。不重用tableView不应该存在功能问题,因为您可能会重用favTableView。标题栏问题应该通过在自定义tableView中手动设置标题的属性来解决。如果要查找标题,则必须设置高度和大小的属性。

必须实现的委托方法是

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
在这个方法原型中,
tableView:
(注意冒号)是一个固定名称,您不能更改。
tableView
的第二个实例只是一个局部变量名,在方法中有意义。以下内容同样有效:

-(NSInteger)tableView:(UITableView *)tv numberOfRowsInSection:(NSInteger)section
委托方法名称就是它们的名称。您无法决定是否希望委托方法名称为其他名称,或者
UITableView
如何知道在需要委托信息时调用哪些方法

因此,对于表favTableView,如果将实现上述委托方法的对象指定为favTableView的委托,那么在调用局部变量时,
tv
实际上与
favTableView
相同


我知道你会对这件事感到困惑。SDK使用“tableView”处理很多事情:方法原型占位符名称、变量名称,谁知道还有什么。它归结为能够阅读和理解Objective-C方法签名。:-)这有点奇怪,直到你习惯了为止。

你必须实现的委托方法是

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
在这个方法原型中,
tableView:
(注意冒号)是一个固定名称,您不能更改。
tableView
的第二个实例只是一个局部变量名,在方法中有意义。以下内容同样有效:

-(NSInteger)tableView:(UITableView *)tv numberOfRowsInSection:(NSInteger)section
委托方法名称就是它们的名称。您无法决定是否希望委托方法名称为其他名称,或者
UITableView
如何知道在需要委托信息时调用哪些方法

因此,对于表favTableView,如果将实现上述委托方法的对象指定为favTableView的委托,那么在调用局部变量时,
tv
实际上与
favTableView
相同


我知道你会对这件事感到困惑。SDK使用“tableView”处理很多事情:方法原型占位符名称、变量名称,谁知道还有什么。它归结为能够阅读和理解Objective-C方法签名。:-)这有点奇怪,直到你习惯为止。

马克-谢谢。现在您已经说过,语法颜色编码更有意义,命名代表tv而不是tableView(gggrrrr)也更有意义。因此,对于第二个tableView(唯一的区别是源xml文件),基本上重用第一个tableView中的代码,但是对于第二个tableView,header和didSelectRowAtIndexPath视图不起作用-谢谢。现在您已经说过,语法颜色编码更有意义,命名代表tv而不是tableView(gggrrrr)也更有意义。因此,从本质上讲,将第一个tableView中的代码重新用于第二个tableView(唯一的区别是源xml文件),但对于第二个tableView,header和didSelectRowAtIndexPath视图不起作用