2

我已阅读有关使用下划线修复编译器警告的信息,即“本地声明隐藏实例变量”,但我无法实现修复。我读过的解决方案说在我的 .h 文件中使用下划线,在我的 .m 文件中使用 @synthesize 部分。但是,我没有合成我的 tableView。请看下面我的头文件:

.h 文件

@interface ListViewController : GAITrackedViewController <UISearchDisplayDelegate, 
UISearchBarDelegate, UITableViewDataSource, UITableViewDelegate> {

IBOutlet UITableView *tableView;

}

.m 文件

//SYNTHESIZE
@synthesize listItems, filteredListItems, savedSearchTerm, savedScopeButtonIndex, 
searchWasActive, mapView, loadingImageView, loadingActivity;



- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

 //FIRST WARNING for tableView HERE

if (tableView == self.searchDisplayController.searchResultsTableView){
    return [self.filteredListItems count];
    }
    else{
        return [self.listItems count];
    }
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

    //SECOND WARNING for tableView HERE

    [tableView setRowHeight: 60.00];
    return 1;

}
4

4 回答 4

6

您有一个名为 tableView 的插座/属性,并且您的委托方法也包含 tableView。

因此,您需要更改其中任何一个。通常,您将委托和数据源的参数名称更改为

- (NSInteger)tableView:(UITableView *)aTableView 
 numberOfRowsInSection:(NSInteger)section {
于 2013-03-02T06:53:45.503 回答
3

改变 :

IBOutlet UITableView *tableView;

至 :

IBOutlet UITableView *tableView1;

在您的 .m 文件中也进行相同的必要更改。出现此警告是因为在下面的委托方法中:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

有一个UITableView名字的引用,tableView你给了相同的名字。此变量的范围是函数级别,而在 .h 中声明的变量范围是类级别。

于 2013-03-02T06:51:34.203 回答
0

不要使用相同的名称:IBOutlet UITableView *tableView; 使用 tableview 或 table_View

于 2013-08-12T11:24:58.063 回答
0

我也确实在这个问题上花了很多时间。最后我可以解决这个问题。问题是我们应该照顾由我们创建的网点。如果您更改插座名称,那么您必须在更改后正确连接它们。在我的情况下,经过大量的努力,我可以完成这个问题,希望它能帮助其他人......例如,如果您有一个名为 tableView 的插座/属性和您的委托方法还包含 tableView。

因此,您需要更改其中任何一个。通常,您将委托和数据源的参数名称更改为 Change :

IBOutlet UITableView *tableView;

至 :

IBOutlet UITableView *tableView1;

有关更多信息,请访问此链接->本地声明隐藏实例变量 - 未合成的 tableView

于 2014-01-20T11:50:19.530 回答