Xamarin.ios 用于返回id的方法的Monotouch绑定<;协议>;
我正在尝试绑定一个api(GoogleAnalytic v2 beta),该api公开了以下方法:Xamarin.ios 用于返回id的方法的Monotouch绑定<;协议>;,xamarin.ios,Xamarin.ios,我正在尝试绑定一个api(GoogleAnalytic v2 beta),该api公开了以下方法: - (id<GAITracker>)trackerWithTrackingId:(NSString *)trackingId; 当我调用GAI.SharedInstance.TrackerWithTrackingId(“MyId”)时,我得到了这个异常 System.InvalidCastException: Unable to cast object of type 'MonoTo
- (id<GAITracker>)trackerWithTrackingId:(NSString *)trackingId;
当我调用GAI.SharedInstance.TrackerWithTrackingId(“MyId”)时,我得到了这个异常
System.InvalidCastException: Unable to cast object of type 'MonoTouch.Foundation.NSObject' to type 'GoogleAnalyticBETA.GAITracker'.
我发现的所有示例都使用protocol作为委托(),而不是作为方法的返回值。如何创建工作绑定?您需要这样的绑定
[BaseType (typeof (NSObject))]
interface GAI
{
[Static][Export ("sharedInstance")]
GAI SharedInstance { get; }
[Export("trackerWithTrackingId:")]
IntPtr TrackerWithTrackingId(string id);
...
}
然后使用它:
var ptr = GAI.SharedInstance.TrackerWithTrackingId("MyId");
var gaitracker = new GAITracker (ptr);
看看Google Analytical现有的monotouch绑定
你有没有弄清这件事的真相?我似乎无法让登录更新google analytics上的跟踪器-统计数据都是ZeroDid你已经找到这个绑定问题的解决方案了吗?谢谢分享!不,我从未解决过这个问题。很抱歉
var ptr = GAI.SharedInstance.TrackerWithTrackingId("MyId");
var gaitracker = new GAITracker (ptr);