ios - 无法转换 NSMutableDictionary 类型的值?到预期的参数类型 [NSObject : AnyObject]!

标签 ios google-analytics swift3

我想跳过去使用 Xcode 8 beta 并转换我的代码,但我在这里遇到了某种问题,我正在使用 Google Analytics SDK 发送事件,这就是我过去在 Swift 中使用它的方式2.2:

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

但现在我想使用 Swift 3,它告诉我:

Cannot convert value of type NSMutableDicationary to type [NSObject : AnyObject] in coercion.

最佳答案

您需要创建一个变量来保存您的 NSMutableDictionary,然后将其传递给 send() 方法。

let dictionary = (builder?.build())! as NSMutableDictionary
tracker?.send(dictionary as [NSObject: AnyObject]!)

更新:另一种在 Swift 3 中使用的简洁方法

guard let tracker = GAI.sharedInstance().defaultTracker else { return }
tracker.set(kGAIScreenName, value: "ViewController")
guard let builder = GAIDictionaryBuilder.createScreenView() else { 
return }
tracker.send(builder.build() as [NSObject:AnyObject])

关于ios - 无法转换 NSMutableDictionary 类型的值?到预期的参数类型 [NSObject : AnyObject]!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38036229/

相关文章:

iphone - 切换器中的 iOS Web 应用程序

math - 正确报告搜索值样本的误差幅度

ruby-on-rails - 如何将 Google Analytics 结果合并到我的 Rails 3 应用程序中?

ios - 预期序列表达式 swift 3

iOS:如何将视频保存在您的目录中并在之后播放?

ios - 基于邮件获取 Firebase 记录

ios - 如何设置不是InterfaceController的HKWorkoutSessionDelegate

javascript - Google Analytics(分析)中的自定义指标/维度不起作用

ios - 如何在 swift/objective c 中打开所有 iphone 7 LED

linux - Swift SQLite Linux/Ubuntu