Исключение только для устройства: этот класс не соответствует кодированию значения ключа для ключа bookingDateLabel.

Действительно озадачен этим сообщением об исключении при создании универсального приложения для раскадровки Xamarin iOS в последние несколько дней. Я получаю это исключение при отладке на устройстве при создании моего пользовательского UITableViewCell (BookingItemCellController, который указан как класс в UITableViewCell в раскадровке xcode), за которым следует сбой приложения и отладчика:

NSUnknownKeyException Причина: [setValue: forUndefinedKey:]: этот класс не соответствует кодированию значения ключа для ключа bookingDateLabel. (MonoTouch.Foundation.MonoTouchException)

Строка, на которой происходит сбой, — это строка var cell.. в строке GetCell:

public override UITableViewCell GetCell (UITableView tableView, MonoTouch.Foundation.NSIndexPath indexPath)
{
  var cell = tableView.DequeueReusableCell (CellIdentifier, indexPath);
  var item = TableItems[indexPath.Row];
..

Самое удивительное, что мое табличное представление загружается и отображаются элементы, и я могу пролистать их на симуляторе, и я получаю эту ошибку только при отладке на iPhone 4 с iOS 7.

bookingDateLabel существует в моем файле .designer.cs, созданном действительным выходом:

[Outlet]
[GeneratedCode ("iOS Designer", "1.0")]
MonoTouch.UIKit.UILabel bookingDateLabel { get; set; }

Опять же, это работает в симуляторе, но не на устройстве. Как это может быть? Есть мысли, банда?

Заранее спасибо.


person GONeale    schedule 06.05.2014    source источник


Ответы (1)


OMFG..... Я нашел ответ. Извините, и я не хочу ругаться, но сегодня я потратил на это около 3 часов, я даже сделал новые файлы классов с той же ошибкой, возникающей с другим именем файла, что меня действительно задело.

Одно из первых предложений, которые вы прочитаете в сети по этому поводу, — попытка очистить ваше решение и перестроить. Я пробовал это. Очевидно, чистота была недостаточно хороша. Я просто вошел и удалил папки bin и obj, и это решило проблему.

Для тех, кто рвет на себе волосы из-за этого. Мое табличное представление теперь загружается нормально. Арг!!

person GONeale    schedule 06.05.2014
comment
это происходит со всеми разработчиками IOS - person maddy; 06.05.2014
comment
Мы очищаем производные данные, когда все остальное не работает :D - person amar; 07.05.2014
comment
Спасибо, это выручило меня. Внес изменения в раскадровку и не мог запустить приложение на телефоне, только симулятор. - person Gerry; 31.10.2014