Swift 2或3中的Google Analytics问题

Bil*_*fas 36 google-analytics ios swift

我有Swift 2(Swift 3)和Google Analytics的问题.

这是问题所在:

tracker.send(GAIDictionaryBuilder.createScreenView().build())
Run Code Online (Sandbox Code Playgroud)

Xcode告诉我:

无法使用类型'(NSMutableDictionary!)'的参数列表调用'send'

Sha*_*Liu 64

Swift 3更新(2016.10.19)

let tracker = GAI.sharedInstance().defaultTracker
let build = (GAIDictionaryBuilder.createScreenView().build() as NSDictionary) as! [AnyHashable: Any]
tracker?.send(build)
Run Code Online (Sandbox Code Playgroud)

仍然是一个丑陋的方法,让我知道是否有更清洁的转换.


原版的

同样在这里,努力解决大量的错误.

我做了什么(弃用):

var build = GAIDictionaryBuilder.createAppView().build() as [NSObject : AnyObject]
tracker.send(build)
Run Code Online (Sandbox Code Playgroud)

编辑(2015)

感谢@George Poulos..最近他们更新了选项,现在不推荐使用createAppView,而应该使用createScreenView.

var build = GAIDictionaryBuilder.createScreenView().build() as [NSObject : AnyObject]
tracker.send(build)
Run Code Online (Sandbox Code Playgroud)


Esq*_*uth 10

除了接受的答案:

改变了这个:

tracker.send(GAIDictionaryBuilder.createEventWithCategory("UX", action: "User sign in", label: nil, value: nil).build())
Run Code Online (Sandbox Code Playgroud)

对此:

tracker.send(GAIDictionaryBuilder.createEventWithCategory("UX", action: "User sign in", label: nil, value: nil).build()  as [NSObject : AnyObject])
Run Code Online (Sandbox Code Playgroud)


Uza*_*aak 5

这可能有点矫枉过正,但我​​更喜欢创建一个简短的扩展,而不是每次都要输入铸件:

在任何swift文件中,粘贴以下代码:

extension GAIDictionaryBuilder
{
    func buildSwiftCompatible() -> [NSObject:AnyObject]
    {
        return self.build() as [NSObject:AnyObject]
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以调用buildSwiftCompatible()而不是通常的build():

tracker.send(GAIDictionaryBuilder.createScreenView().buildSwiftCompatible())
Run Code Online (Sandbox Code Playgroud)

玩得开心.