Пользовательские ошибки UITableViewCell - PullRequest
5 голосов
/ 15 октября 2010

Я пытаюсь создать собственное табличное представление, используя ячейку, которую я построил в IB. Я получаю странную ошибку:

<BroadcastViewController 0x4b4f5f0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key postText.

В IB все правильно подключено к контроллеру ячейки. Не совсем уверен, почему это происходит.

Вот как выглядит мой cellForRowAtIndexPath:

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

//Get the folder object of interest
Broadcast *messageAtIndex = [self.messages objectAtIndex:indexPath.row] ;

static NSString *CellIdentifier = @"BroadcastTableViewCell";
static NSString *CellNib = @"BroadcastTableViewCell";

BroadcastTableViewCell *cell = (BroadcastTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
   //ERRORING ON THIS LINE...
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:CellNib owner:self options:nil];
    cell = (BroadcastTableViewCell *)[nib objectAtIndex:0];
}


cell.postText.text = messageAtIndex.replyText;
cell.authorName.text = messageAtIndex.postCreatorFirstName;
cell.postDate.text = messageAtIndex.creationDate;

return cell;

}

Кто-нибудь видел такую ​​ошибку раньше? Дайте мне знать, если вам нужна дополнительная информация ...

Ответы [ 3 ]

5 голосов
/ 15 октября 2010

Что действительно странно, так это то, что он жалуется, что класс BroadcastViewController не соответствует KVC postText.

Насколько я вижу, postText - это ярлык в вашей ячейке, поэтомуIBOutlet для этого должен быть в классе BroadcastTableViewCell.Так что проверьте, где вы связали ярлык postText в IB.Также может случиться так, что у вас в контроллере представления есть IBOutlet для этой метки, вы удалили его, но забыли удалить ссылку в IB.Во всяком случае, где-то есть ваша проблема.Тот факт, что у вас есть ошибка в этой строке, объясняется тем, что именно там вы загружаете свой NIB, он не имеет никакого отношения к самой ячейке или владельцу.

1 голос
/ 15 октября 2010

Хорошо, разобрался.Соединения в IB были действительно неверны.Я связал их с владельцем файла, а не с реальными объектами.Я собираюсь дать это тоже Стелиану, потому что он поручил мне проверить перо.Спасибо за вашу помощь!

1 голос
/ 15 октября 2010

Может иметь какое-то отношение к dequeueReusableCellWithIdentifier, возвращающему UITableViewCell *.

Обычно я делаю это:

UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier...
CustomCell* acell = (CustomCell*)cell; 

Установите владельца на ноль.

NSArray *nib = [[NSBundle mainBundle] loadNibNamed:CellNib owner:nil options:nil]; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...