无法将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()