[UIImageView setText:]:нераспознанный селектор отправлен в экземпляр

StackOverflow https://stackoverflow.com//questions/11698030

Вопрос

Извините, если уже спрашивали, но вот проблема:

Я получаю это сообщение, когда быстро прокручиваю tableView:

Закрытие приложения из-за неперехваченного исключения «NSInvalidArgumentException», причина:'-[UIImageView setText:]:нераспознанный селектор отправлен в экземпляр 0x8a8f8d0'

Вот мой код:

   NewsVideoCell *cell = [tableView dequeueReusableCellWithIdentifier:AudioCellIdentifier];

   if (cell == nil) {
       cell = [[NewsVideoCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:AudioCellIdentifier];
   }


   cell.backgroundView = [ [UIImageView alloc] initWithImage:[ [UIImage imageNamed:@"news_bg"] resizableImageWithCapInsets:UIEdgeInsetsMake(10, 0, 10, 0)] ];  
   cell.selectedBackgroundView = [ [UIImageView alloc] initWithImage:[ [UIImage imageNamed:@"news_bg"] resizableImageWithCapInsets:UIEdgeInsetsMake(10, 0, 10, 0)] ];



   UILabel *cellLabel = (UILabel *)[cell viewWithTag:1];
   [cellLabel setText:[masjid objectForKey:@"name"]];

   UILabel *cellDate = (UILabel *)[cell viewWithTag:2];
   [cellDate setText:[[news objectAtIndex:indexPath.row] objectForKey:@"date"]];       

   UIImageView *cellImage = (UIImageView *)[cell viewWithTag:3];
   NSString *imagePath = [masjid objectForKey:@"thumb"];
   [cellImage setImage:[UIImage imageNamed:[NSString stringWithFormat:@"%@", imagePath]]];

   UITextView *cellText = (UITextView *)[cell viewWithTag:5];
   NSString *postText = [[news objectAtIndex:indexPath.row] objectForKey:@"title"];

   [cellText setText:postText];

   ...

И строка, которая запускает это исключение:

   [cellText setText:postText];

Я видел, что это связано с чрезмерным удержанием или недостаточным освобождением, но не нашел способа это исправить.

любая помощь, плз?

Это было полезно?

Решение

UITextView *cellText = (UITextView *)[cell viewWithTag:5];
.

В этой строке кода ваш тег для UITExtView - это «5», я думаю, что у вас может дать диффунтный идентификатор для этого представления.Сначала.

У меня была проблема Similler .... Я обнаружил, что мой тег был разной для TextView и представление изображения.

Как изменить тег для просмотра?

Сначала выберите вид (т.е. ueTxtView), а затем перейдите в вкладку инспектора атрибута ..... под «представлением» вы найдете «тег», напишите там 5.

Я надеюсь, что это может быть полезно для вас.

Другие советы

setText это UITextView метод не UIImageView.Теперь, как упоминалось в комментарии, cellText не является UITextView например, это кажется UIImageView например, тогда вы пытаетесь позвонить setText метод из UIImageView экземпляр, который приводит к сбою приложения.Попробуйте протестировать его, чтобы убедиться:

   UITextView *cellText = (UITextView *)[cell viewWithTag:5];
   if([cellText class] != [UITextView class]){
        cellText = [[UITextView alloc]init];
   }
   NSString *postText = [[news objectAtIndex:indexPath.row] objectForKey:@"title"];

   [cellText setText:postText];

Таким образом, если cellText не является UITextView например, он инициирует его для вас.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top