在 Swift 中 Google Analytics 异常跟踪的正确语法是什么?

What is the proper syntax for Google Analytics Exception tracking in Swift?

我正尝试在 Google Analytics 中为我的应用程序使用异常跟踪。 https://developers.google.com/analytics/devguides/collection/ios/v3/exceptions

我只是想弄清楚 Swift 中的语法(对 Obj-C 不是很熟悉):

@try {
    // Request some scores from the network.
    NSArray *highScores = [self getHighScoresFromCloud];
}
@catch (NSException *exception) {
    // May return nil if a tracker has not already been initialized with a
    // property ID.
    id tracker = [[GAI sharedInstance] defaultTracker];
    [tracker send:[[GAIDictionaryBuilder
        createExceptionWithDescription:@"Connection timout %d: %@", connectionError, errorDescription  // Exception description. May be truncated to 100 chars.
    withFatal:@NO] build]];  // isFatal (required). NO indicates non-fatal exception.
}

我的追踪器设置正常,将其他数据保存到 GA 时工作正常,我不确定 Swift 中调用 createExceptionWithDescription() 的语法。

使用 Swift 进行 Google 分析的示例/文档肯定不会太多... =/ 如果您知道,请告诉我!

谢谢。

我想它是这样的:

let dictionaryToSend = GAIDictionaryBuilder.createExceptionWithDescription("Connection timeout \(connectionError): \(errorDescription)", withFatal: NSNumber(bool: false)).build()

如果它是 Obj-C 中的 class 函数,写成

[GAIDictionaryBuilder createExceptionWithDescription:...]; // objc

写得像

GAIDictionaryBuilder.createExceptionWithDescription(...); // swift

obj-c 中的每个冒号表示一个参数变量。

// Broken into two lines to make it easier to read
    [GAIDictionaryBuilder createExceptionWithDescription: @"String here"
                          withFatal: @NO]; 

您可以在 swift 中做类似的事情:

//Comma separated 
    GAIDictionaryBuilder.createExceptionWithDescription("Description String",
                                                        withFatal: NSNumber(bool:false));

我建议您学习一点 ObjC 消息传递语法,因为很多 iOS 代码仍在 ObjC 中,但不要太担心它。 Swift 是更好的语言。

谢谢 David Wong,你的 post 帮了我很大的忙,让我在语法方面走上了正确的轨道。

这个post也对我帮助很大:

这就是最终对我有用的东西:

let tracker = GAI.sharedInstance().defaultTracker
let eventTracker: NSObject = GAIDictionaryBuilder.createExceptionWithDescription("No internet connection.", withFatal: false).build()
tracker.send(eventTracker as! [NSObject : AnyObject])

再次感谢!