2017-01-16 2 views
0

Я создал проект. В этом случае используются методы tableview. Я запустил этот проект, чтобы выполнить его успешно. И работаю хорошо. Но у меня есть проблема. Я много раз пытался, но не решил. поэтому, пожалуйста, предложите мне, как это решить.Как разрешить эту ошибку: Локальное объявление 'indexPath' скрывает переменную экземпляра

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

LocationCell *cell = [tableView dequeueReusableCellWithIdentifier:@"htrcell"]; 
if (cell==nil) 
{ 
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"Cell" owner:self options:nil]; 
    cell = [nib objectAtIndex:0]; 
} 
[cell.location_lbl setTitle:location[indexPath.row]forState:UIControlStateNormal] ; 

cell.backgroundColor=[UIColor clearColor]; 
cell.bg_view.layer.cornerRadius = 20; 
cell.bg_view.layer.masksToBounds = YES; 
cell.bg_view.backgroundColor = [[UIColor colorWithRed:20.0/255 green:100.0/255 blue:171.0/255 alpha:0.7f] colorWithAlphaComponent:0.7f]; 

//////////////// 
[cell.map addTarget:self action:@selector(buttonClickedMap:) forControlEvents:UIControlEventTouchUpInside]; 
[cell.map setTag:indexPath.row];  

[cell.phone addTarget:self action:@selector(buttonClickedPhone:) forControlEvents:UIControlEventTouchUpInside]; 
[cell.phone setTag:indexPath.row]; 

[cell.location_lbl addTarget:self action:@selector(buttonClickedlocation:) forControlEvents:UIControlEventTouchUpInside]; 
[cell.location_lbl setTag:indexPath .row]; 


return cell; 
} 

В этом cellForRowAtIndexPath метод Все indexPath место, чтобы показать проблемы. Как эта линия в этом

[cell.location_lbl setTitle:location[indexPath.row]forState:UIControlStateNormal]; 

indexPath место, чтобы показать проблемы:

Локальная декларация indexPath скрывает переменную экземпляра.

Как решить мою проблему. Thankyou

+2

У вас есть глобальная переменная с тем же именем «indexPath» в заголовке или что-то в этом роде. Измените это на «myIndexPath» или что-то еще. – GeneCode

+0

Я заменяю «indexPath» на «myindexPath»? –

+0

Да, вы заменяете, но не в методе «cellForRowAtIndexPath», в определениях ваших глобальных переменных. –

ответ

0

Бьюсь об заклад, вы указали переменную с именем "indexPath" в вашем интерфейсе класса. Измените это имя.

+0

Я не могу понять, пожалуйста, объясните кратко –

+0

проверьте свои места в этом классе (файлы .m и .h), где вы указали какие-либо переменные, и, возможно, один из них с именем «indexPath», который точно так же, как имя переменной- параметр в методе "cellForRowAtIndexPath". Переименуйте переменную «indexPath», которую вы создали, на любое другое имя. –

+1

его глупая ошибка, я меняю имя переменной и решу свою проблему. –

0

Если какое-либо время, его показ Локальная декларация 'yourVairableName' скрывает переменную экземпляра, то это означает, что вы создали локальное имя переменной так же, как ваша переменная экземпляра.

Поэтому, пожалуйста, проверьте и убедитесь, что вы не создали локальную переменную с тем же именем, что и indexPath.

Смежные вопросы