Tag: jit

在iOS上使用C#的LINQ OrderBy的JIT错误

我在iOS设备上收到以下错误消息: ExecutionEngineException:试图JIT编译方法'System.Linq.OrderedEnumerable 1<System.Collections.Generic.KeyValuePair 2>:GetEnumerator()',而运行时使用 – 仅 – 只。 我正在使用Unity3D,而且我知道这个错误是由于LINQexpression式在编译Unity到iOS时对sorting值types有问题而引起的。 因为(我认为)expression式试图使用reflection来实例化一个实现IComparer <TKey>接口的新types。 这将适用于引用types,但不适用于Unity iOS构build的值types。 所以我的想法是,因为我知道在这种情况下,我总是试图订购一个整数集合。 我可以绕过通用的ICompare <TKey>,并创build自己的自定义比较器。 public class IntCompare : Comparer<int> { public override int Compare (int x, int y) { return x – y; } } 但是,使用OrderBy仍然给我错误。 有什么我不明白为什么我的方法不工作? 我的表情: OptimizeMaxCommitList(members .OrderBy((memberid) => memberid.Value, new IntCompare()) .Skip(1) .ToDictionary(pair => pair.Key, pair => pair.Value) ,maxCommit);

是否禁止在AppStore的iOS应用程序中使用JIT(just-in-time)编译代码?

我听说JIT编译代码在iOS AppStore中是不允许的,因为禁止在堆中放置可执行代码。 那对吗? 或者只是一个传闻?