我正在尝试使用V3 SDK将商务交易数据发送到iOS上的谷歌分析。我正在使用Google提供的GAIDictionaryBuilder类构建数据字典(不幸的是,它不是开源的)。对于createTransactionWithId和createItemWithTransactionId调用,我的NSNumber值(收入,价格等)无法正确添加到字典数据中。以下是示例代码:
NSMutableDictionary* test = [[GAIDictionaryBuilder createTransactionWithId:(NSString *)transactionId
affiliation:(NSString *)affiliation
revenue:(NSNumber *)revenue
tax:(NSNumber *)tax
shipping:(NSNumber *)shipping
currencyCode:(NSString *)currencyCode] build];
NSLog(@"revenue: %@", revenue);
NSLog(@"TR data: %@", test);
// if I explicitly set the value, IT WORKS!!!!
[test setObject:revenue forKey:@"&tr"];
NSLog(@"TR data FIXED??: %@", test);
在输出中,我看到收入正确,然后在记录测试字典时,我看到对应于收入数据的以下行:
"&tr" = "<null>";
然后,对于手动修复尝试,我看到
"&tr" = "15.25";
正如所料。
以下是一些线索:
所以问题是,为什么"<null>"
,为什么以及如何将正确的NSNumber转换为这个奇怪的值?
答案 0 :(得分:0)
最后,我通过解决这个问题来解决这个问题。我将NSNumber分配给一个新的(通过获取其floatValue),它似乎修复了空值。
顺便说一句,谷歌分析库版本3.07自述文件提到了类似的问题,但3.03和3.07都没有解决我的问题。