我尝试在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 Analytics操作的示例/文档,肯定没有什么好处... = /如果您知道,请告诉我们!
感谢。
答案 0 :(得分:1)
谢谢,黄大卫,你的帖子帮助了我很多,使我的语法正确。
这篇文章也对我有很大帮助: Cannot convert value of type 'NSMutableDictionary' to type '[NSObject: AnyObject]' in coercion for google ios Analytics
最终为我工作的是:
let tracker = GAI.sharedInstance().defaultTracker
let eventTracker: NSObject = GAIDictionaryBuilder.createExceptionWithDescription("No internet connection.", withFatal: false).build()
tracker.send(eventTracker as! [NSObject : AnyObject])
再次感谢!
答案 1 :(得分:0)
我想象它的某些东西:
let dictionaryToSend = GAIDictionaryBuilder.createExceptionWithDescription("Connection timeout \(connectionError): \(errorDescription)", withFatal: NSNumber(bool: false)).build()
如果它的一个类函数在Obj-C中写成
[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中,但不要担心它的大量内容。斯威夫特是一种更好的语言。