无法将types为“NSMutableDictionary”的值转换为用于谷歌iOS强制types的“”分析

我想将Google Analytics(分析)ios添加到我的项目中,但当我尝试将代码粘贴到我的应用中时,出现了一些问题,如下面的代码。

var tracker = GAI.sharedInstance().defaultTracker tracker.set(kGAIScreenName, value: "rootPlayView") var builder = GAIDictionaryBuilder.createScreenView() tracker.send(builder.build() as [NSObject : AnyObject]) 

然后我得到这样的错误

在这里输入图像说明

我怎样才能解决这个问题?

谢谢!

键入converson

在这里输入图像说明

Swift3

屏幕跟踪

  let tracker = GAI.sharedInstance().defaultTracker tracker.set(kGAIScreenName, value: "Home") tracker.send(GAIDictionaryBuilder.createScreenView().build() as [AnyHashable : Any]) 

Objective-C的

  id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; // Set the screen name on the tracker so that it is used in all hits sent from this screen. [tracker set:kGAIScreenName value:@"Home"]; [tracker send:[[GAIDictionaryBuilder createScreenView] build]]; 

自动屏幕跟踪

Swift3

 override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) self!.screenName = "About Screen" } 

Objective-C的

 - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; self.screenName = @"About Screen"; } 

事件跟踪

Swift3

  let tracker = GAI.sharedInstance().defaultTracker tracker!.send(GAIDictionaryBuilder.createEventWithCategory("ui_action", action: "button_press", label: "menuButton", play: nil).build()) 

Objective-C的

 id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; [tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"ui_action" // Event category (required) action:@"button_press" // Event action (required) label:@"play" value:nil] build]]; 

或使用

 weak var tracker = GAI.sharedInstance().defaultTracker // Set screen name on the tracker to be sent with all hits. tracker!.set(kGAIScreenName, value: "Home Screen") // Send a screen view for "Home Screen". // [tracker send:[[GAIDictionaryBuilder createAppView] build]]; // Previous V3 SDK versions. tracker!.send(GAIDictionaryBuilder.createScreenView().build()) // SDK Version 3.08 and up. // This event will also be sent with &cd=Home%20Screen. tracker!.send(GAIDictionaryBuilder.createEventWithCategory("UX", action: "touch", label: "menuButton", value: nil).build()) // Clear the screen name field when we're done. tracker!.set(kGAIScreenName, value: nil) 

欲了解更多信息,请参阅

尝试这个

 var builder = GAIDictionaryBuilder.createScreenView().build() as! [NSObject : AnyObject] tracker.send(builder) 

为屏幕跟踪

 let tracker = GAI.sharedInstance().defaultTracker tracker.set(kGAIDescription, value: "rootPlayView") let builder: NSObject = GAIDictionaryBuilder.createScreenView().build() tracker.send(builder as! [NSObject : AnyObject]) 

为事件追踪

  let tracker = GAI.sharedInstance().defaultTracker let builder: NSObject = GAIDictionaryBuilder.createEventWithCategory( "xxxx", action: "buttonclicked", label: "you pressed xxx button", value: nil).build() tracker.send(builder as! [NSObject : AnyObject]) 

Swift 3已经更新了这个答案

 let tracker = GAI.sharedInstance().defaultTracker let eventTracker: NSObject = GAIDictionaryBuilder.createEvent( withCategory: "SomeCategory", action: "SomeAction", label: "SomeLabel", value: nil).build() tracker.send(eventTracker as [NSObject : AnyObject]!) 

要么…

 let tracker = GAI.sharedInstance().defaultTracker tracker.set(kGAIDescription, value: "ScreenViewName") let eventTracker: NSObject = GAIDictionaryBuilder.createScreenView().build() tracker.send(eventTracker as! [NSObject : AnyObject]) 

对于GA 3.17.0使用:

 let tracker = GAI.sharedInstance().defaultTracker let builder = GAIDictionaryBuilder.createEvent(withCategory: category, action: action, label: nil, value: nil).build() tracker?.send(builder as [NSObject : AnyObject]!) 

注意![NSObject: AnyObject]!的末尾[NSObject: AnyObject]!

小惊人的答案,在快3,方法是

 let builder:NSObject = GAIDictionaryBuilder.createEvent(withCategory: category, action: eventName, label: label, value: nil).build()