В настоящее время у меня есть некоторый код, как показано ниже, который использует Linq для организации некоторых IEnumerables для меня. При выполнении этого кода на устройстве в режиме выпуска (iOS 5.0.1, MonoTouch 5.0.1, Mono 2.10.6.1) я получаю исключение
Попытка JIT-метода компиляции 'System.Linq.OrderedEnumerable`1: GetEnumerator ()' при работе с параметром --aot-only.
Код, который генерирует эту ошибку:
// List<IncidentDocument> documents is passed in
List<LibraryTableViewItemGroup> groups = new List<LibraryTableViewItemGroup>();
List<DocumentObjectType> categories = documents.Select(d=>d.Type).Distinct().OrderBy(s=>s.ToString()).ToList();
foreach(DocumentObjectType cat in categories)
{
List<IncidentDocument> catDocs = documents.Where(d => d.Type == cat).OrderBy(d => d.Name).ToList();
List<LibraryTableViewItem> catDocsTableItems = catDocs.ConvertAll(d => { return new LibraryTableViewItem{ Image = GetImageForDocument(d.Type), Title = d.Name, SubTitle = d.Description}; });
LibraryTableViewItemGroup catGroup = new LibraryTableViewItemGroup{ Name = GetCatName(cat), Footer = null, Items = catDocsTableItems };
groups.Add (catGroup);
}
Эта ошибка не возникает в симуляторе для конфигураций Release | Debug или на устройстве для конфигурации Debug. Я видел пару похожих тем на SO здесь и здесь , но я не уверен, что понимаю, как они относятся ко мне в этом конкретном вопросе.