我有最新的Xamarin.iOS beta;试图使用任何异步方法会触发JIT异常。无论方法的内容如何都会发生。Xamarin.iOS beta引发异步方法JIT
控制器我从运行它(主要是内脏保存令牌异步方法)
using System;
using System.Drawing;
using System.Net.Http;
using MonoTouch.Foundation;
using System.Collections.Generic;
using MonoTouch.UIKit;
using Archer.Base;
namespace Archer.Ios
{
public class CategoryTableViewController : UITableViewController
{
public CategoryTableViewController() : base (UITableViewStyle.Grouped)
{
}
String foo;
public override void DidReceiveMemoryWarning()
{
// Releases the view if it doesn't have a superview.
base.DidReceiveMemoryWarning();
// Release any cached data, images, etc that aren't in use.
}
public override void ViewDidLoad()
{
base.ViewDidLoad();
//*snip*
}
public override void ViewDidAppear (bool animated)
{
LoadCategories();
base.ViewDidAppear (animated);
}
public async void LoadCategories()
{
foo = await (new HttpClient()).GetStringAsync
("http://ifconfig.me/all.json");
}
}
}
System.ExecutionEngineException:试图JIT编译方法 “System.Runtime.CompilerServices.AsyncVoidMethodBuilder:启动 (Archer.Ios.CategoryTableViewController/c__async0 &)'',而运行 与 - 只 - 。有关 的更多信息,请参阅http://docs.xamarin.com/ios/about/limitations。
在Archer.Ios.CategoryTableViewController.LoadCategories()[0x00000] 在:0在Archer.Ios.CategoryTableViewController.ViewDidLoad() [0x0009d]在 /Users/apaulin/src/Archer/Archer.Ios/ CategoryTableViewController.cs:43 处(包皮管理到本机) MonoTouch.ObjCRuntime.Messaging:void_objc_msgSend(IntPtr的,IntPtr的)在 MonoTouch.UIKit.UIWindow.MakeKeyAndVisible()[0x00008]在 /开发商/ MonoTouch的/源/ monotouch/src/UIKit/UIWindow.g.cs:129在 Archer.Ios.AppDelegate.FinishedLaunching (MonoTouch.UIKit.UIApplication应用程序,MonoTouch.Foundation.NSDictionary 选项)[0x00054] /Users/apaulin/src/Archer/Archer.Ios/AppDelegate.cs:39 at(包装器 托管到本机)MonoTouch.UIKit.UIApplication:UIApplicationMain (int,string [] ,intptr,intptr)在MonoTouch.UIKit.UIApplication.Main (System.String [] args,System.String principalClassName,System.String delegateClassName)[0x0004c] in /Developer/MonoTouch/Source/monotouch/src/UIKit /UIApplication.cs:38在 Archer.Ios.Application.Main(System.String []参数)[0x00001]在 /Users/apaulin/src/Archer/Archer.Ios/Main.cs:17
您发布的例外不足以帮助您。你有没有在目前的稳定版本中存在这个问题?如果您需要Beta版本的帮助,您必须联系Xamarin。 – 2013-05-13 15:47:43
发布您的一些异步代码,让我们知道发生了什么。我在一些项目上一直在使用这个测试版,并没有遇到这个问题 - 只有一个地方我得到了一个简单的解决方法的“无效的IL”消息。 – jonathanpeppers 2013-05-13 17:11:21