Я разрабатываю приложение, используя Xamarin + Mvvmcross. В настоящее время он отлично работает на iPad Mini, iPad 2,3, iPhone 5S и 6. Странно одна из просмотров рушится на iPhone 4S под управлением iOS 7.1. Все тесты проводились с использованием реальных устройств.Приложение DequeueReusableCell падает только на iPhone 4S
Вот авария:
https://gist.github.com/nunohorta/2b84245899e8c0daa116
Код для исходной таблицы это одна:
public class MessagesTableSource : MvxStandardTableViewSource
{
UITableView _tableview;
MessagesView _parent;
UILabel messageLabel;
private static readonly NSString MessageCellIdentifier = new NSString("MessageCell");
public MessagesTableSource(UITableView tableView, MessagesView parent) : base(tableView)
{
_tableview = tableView;
_parent = parent;
}
public override nint RowsInSection (UITableView tableview, nint section)
{
return _parent.ViewModel.Messages != null ? _parent.ViewModel.Messages.Count : 0;
}
public override nint NumberOfSections (UITableView tableView)
{
if (_parent.ViewModel.Messages != null && _parent.ViewModel.Messages.Count > 0) {
return 1;
} else {
/*
* Custom View here
*
* */
return 0;
}
}
protected override UITableViewCell GetOrCreateCellFor (UITableView tableView, NSIndexPath indexPath, object item)
{
var cell = (MessageCell)tableView.DequeueReusableCell("MessageCell");
return cell;
}
}
Я также регистрации пользовательского класса, как это на viewDidLoad:
tableView.RegisterNibForCellReuse(UINib.FromName("MessageCell", NSBundle.MainBundle), MessageCellIdentifier);
Я понятия не имею, почему это сбой только для одного разработчика лед ... Крушение, похоже, происходит на UIKit/CoreFoundation.
FIXED> Похоже, по какой-то причине у меня был атрибут runtime типа integer со значением 5, определенным в моем файле xib. И по какой-то магической причине iOS падает на 7.1, но не на других. – nhenrique