Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin.ios 用于返回id的方法的Monotouch绑定<;协议>;_Xamarin.ios - Fatal编程技术网

Xamarin.ios 用于返回id的方法的Monotouch绑定<;协议>;

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

我正在尝试绑定一个api(GoogleAnalytic v2 beta),该api公开了以下方法:

- (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);