Подтвердить что ты не робот

Отслеживание событий в UIButton Google Analytics (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()) 
    }

Ошибка:

Cannot invoke 'send' with an argument list of type'(NSMutableDictionarry)'
4b9b3361

Ответ 1

Так как Swift 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]) 
    }

Надеюсь, что это поможет!

Ответ 2

Этот ответ был обновлен для Swift 3

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

OR...

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]!)

Ответ 3

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])