このメソッドを公開するAPI(GoogleAnalytic v2ベータ版)をバインドしようとしています:
- (id<GAITracker>)trackerWithTrackingId:(NSString *)trackingId;
GAITrackerはプロトコルであるため、私のバインディングにはこの定義が含まれています
[BaseType (typeof (NSObject))]
[Model]
interface GAITracker
{
...
}
[BaseType (typeof (NSObject))]
interface GAI
{
[Static][Export ("sharedInstance")]
GAI SharedInstance { get; }
[Export("trackerWithTrackingId:")]
GAITracker TrackerWithTrackingId(string id);
...
}
GAI.SharedInstance.TrackerWithTrackingId( "MyId")を呼び出すと、この例外が発生します
System.InvalidCastException: Unable to cast object of type 'MonoTouch.Foundation.NSObject' to type 'GoogleAnalyticBETA.GAITracker'.
私が見つけたすべての例は、(ここに記載されているように)デリゲートとしてプロトコルを使用していますが、メソッドの戻り値としては使用していません。動作するバインディングを作成するにはどうすればよいですか?