System.ExecutionEngineException: Attempting to JIT compile method System.Linq.Enumerable

关于JIT编译和AOT编译的问题。IOS下是不支持JIT动态编译的,所以如果程序有涉及JIT编译的都会无法执行。

在google查过说unity是不支持部分的Linq功能,如Sort方法。

但我在unity里面没有用到Linq的Sort方法,不过有用到OrderBy, FirstOrDefault, Where等。结果还是出现这个错误,

以防万一只能将所有用到的Linq方法重写。

如:类似System.Linq.Enumerable.Where的方法

public static IEnumerable<T> Filter<T>(this IEnumerable<T> source, Func<T, bool> predicate)    
        {
            if (source == null || predicate == null)
            {
                throw new ArgumentNullException();
            }
            return impl(source, predicate);
        }

        private static IEnumerable<T> impl<T>(IEnumerable<T> source, Func<T, bool> predicate)
        {
            foreach (T item in source)
            {
                if (predicate(item))
                {
                    yield return item;
                }
            }
        }

Since applications on the iPhone using Xamarin.iOS are compiled to static code, it is not possible to use any facilities that require code generation at runtime. 

From: http://developer.xamarin.com/guides/ios/advanced_topics/limitations/

转载于:https://www.cnblogs.com/vincentDr/p/4096767.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值