UIButton事件跟踪Google Analytics(Swift)

Tom*_*mer 14 google-analytics uibutton ios swift

我想跟踪用户点击UIButton与Google Analytics的事件.我有下面的代码,但我显示错误.我哪里错了?谢谢

码:

@IBAction func startGame1(sender: AnyObject) {

        var tracker = GAI.sharedInstance().defaultTracker

        tracker.send(GAIDictionaryBuilder.createEventWithCategory("Game 1", action: "Start Pressed", label: "Start Timer One", value: nil).build()) 
    }
Run Code Online (Sandbox Code Playgroud)

错误:

Cannot invoke 'send' with an argument list of type'(NSMutableDictionarry)'
Run Code Online (Sandbox Code Playgroud)

小智 19

由于雨燕1.2发布,你要投GAIDictionaryBuilder[NSObject : AnyObject]

在StackOverflow上看到这篇文章

Google Analytics不支持Swift 1.2和Xcode 6.3

您的问题有解决方案

@IBAction func startGame1(sender: AnyObject) {

        var tracker = GAI.sharedInstance().defaultTracker

        tracker.send(GAIDictionaryBuilder.createEventWithCategory("Game 1", action: "Start Pressed", label: "Start Timer One", value: nil).build() as [NSObject : AnyObject]) 
    }
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!

  • 嘿jre,它在Swift 2.0中有帮助,错误:NSMutableDictionary不能转换为[NSObject:AnyObject].建议? (2认同)

Vla*_*iak 15

此答案已针对Swift 3进行了更新

<key>GoogleAnalytics</key>
<dict>
    <key>TRACKING_ID</key>
    <string>"put_your_tracking_id_here"</string>
</dict>
Run Code Online (Sandbox Code Playgroud)

要么...

// GAI
    if let gai = GAI.sharedInstance(),
        let gaConfigValues = Bundle.main.infoDictionary?["GoogleAnalytics"] as? [String: String],
        let trackingId = gaConfigValues["TRACKING_ID"]
    {
        gai.logger.logLevel = .error
        gai.trackUncaughtExceptions = false
        gai.tracker(withTrackingId: trackingId)
    } else {
        assertionFailure("Google Analytics not configured correctly")
    }
Run Code Online (Sandbox Code Playgroud)


小智 14

Swift 3:您应该使用"[AnyHashable:Any]"而不是[NSObject:AnyObject].

资料来源:https://developer.apple.com/swift/blog/?id = 39

guard let tracker = GAI.sharedInstance().defaultTracker else {return}
let eventTracker: NSObject = GAIDictionaryBuilder.createEvent(
    withCategory: YOUR_CATEGORY_NAME,
    action: YOUR_ACTION_NAME,
    label: YOUR_LABEL_NAME,
    value: nil).build()
tracker.send(eventTracker as! [AnyHashable: Any])
Run Code Online (Sandbox Code Playgroud)