使用 GAIDictionaryBuilder 后,AlamoFire + Google Analytics 出现相同的 VC 错误

Posted

技术标签:

【中文标题】使用 GAIDictionaryBuilder 后,AlamoFire + Google Analytics 出现相同的 VC 错误【英文标题】:AlamoFire + Google Analytics on same VC error after using GAIDictionaryBuilder 【发布时间】:2015-09-29 15:28:41 【问题描述】:

使用后:

let gaBuilder = GAIDictionaryBuilder.createScreenView()

在视图控制器上的任何地方,我在使用 Alamofire 的地方都会收到此错误:

Cannot call value of non-function type "NSHTTPURLResponse?"

AF 声明:

Alamofire.request(.POST, loginUrl, parameters: loginParameters, encoding: .URL, headers: nil).response(queue: dispatch_get_main_queue(), completionHandler:  (request, response, data, errorType) -> Void in

无论我用 GAIDictionaryBuilder 做什么(发送事件、设置参数或使用 createScreenView),只要我使用它都会收到该错误。

这是我的 Podfile:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_frameworks!

pod 'Alamofire', '~> 2.0'
pod 'Parse'
pod 'Google/Analytics', '~> 1.0.0'

【问题讨论】:

【参考方案1】:

我的问题类似,当我发送如下的转换对象时出现错误“无法调用非函数类型“NSHTTPURLResponse?”的值:

GAI.sharedInstance().defaultTracker.send(GAIDictionaryBuilder.createScreenView().build() as [NSObject: AnyObject])

我认为这是 XCode 的问题。为了解决这个问题,我实现了一个辅助函数来转换对象,然后错误就消失了。像下面这样的助手:

class Helpers

    class func ConvertGAIDictionaryBuilder(input: GAIDictionaryBuilder) -> [NSObject: AnyObject]
        return input.build() as [NSObject: AnyObject]
    

然后申请:

GAI.sharedInstance().defaultTracker.send(Helpers.ConvertGAIDictionaryBuilder(GAIDictionaryBuilder.createScreenView()))

【讨论】:

以上是关于使用 GAIDictionaryBuilder 后,AlamoFire + Google Analytics 出现相同的 VC 错误的主要内容,如果未能解决你的问题,请参考以下文章

SQLmap使用方法?为啥按照网上的教程安装后使用网上说的命令却不能使用?

怎么复制信息.复制后如何使用

更改核心数据堆栈后使用核心数据创建 SQLite 文件后未更新

orCAD安装后,第二天就无法使用,求解决...!!!

使用 RealSense 进行后处理后如何获得像素 x,y 处的深度?

使用导航从一个片段导航到另一个片段后,防止后按工作