使用 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 文件后未更新