1

最新の Xamarin.iOS ベータ版を入手しました。非同期メソッドを使用しようとすると、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: --aot-only で実行中にメソッド 'System.Runtime.CompilerServices.AsyncVoidMethodBuilder:Start (Archer.Ios.CategoryTableViewController/c__async0&)' を JIT コンパイルしようとしています。詳細については、 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 で(wrapper managed-to-native) MonoTouch.ObjCRuntime.Messaging:void_objc_msgSend (intptr,intptr) at MonoTouch.UIKit.UIWindow.MakeKeyAndVisible () [0x00008] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIWindow.g .cs:129 at Archer.Ios.AppDelegate.FinishedLaunching (MonoTouch.UIKit.UIApplication アプリ、MonoTouch.Foundation.NSDictionary オプション) [0x00054] in /Users/apaulin/src/Archer/Archer.Ios/AppDelegate.cs:39 at at (wrapper managed-to-native) MonoTouch.UIKit.UIApplication:UIApplicationMain (int,string[],intptr,intptr) at MonoTouch.UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x0004c] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:38 at Archer.Ios.Application.Main (System.String[] args) [0x00001] in /Users/apaulin/src/Archer/Archer.Ios/Main.cs:17

4

2 に答える 2

0

コードのいくつかの組み合わせを試して、特定の問題を見つけることができるかどうかを確認してください。

試す例を次に示します。

        public async Task<string> LoadCategories ()
        {
            var client = new HttpClient ();

            return await client.GetStringAsync("http://ifconfig.me/all.json");
        }

あなたの組み合わせの 1 つが機能する場合は、Xamarin の Bugzillaに壊れた例でバグを投稿し、回避策も投稿します。これは、Xamarin の修正に役立ちます。

于 2013-05-14T12:05:10.500 に答える