1
我試圖使用V3 SDK將商業交易數據發送到iOS上的谷歌分析。我正在使用Google提供的GAIDictionaryBuilder類構建數據字典(不幸的是,這不是開源的)。對於createTransactionWithId和createItemWithTransactionId調用,我的NSNumber值(收入,價格等)未能正確添加到字典數據中。下面是示例代碼:GAIDictionaryBuilder無法獲取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";
如預期。
這裏有一些線索:
- 我使用相同的代碼在不同的OSX機器沒有任何像這樣的問題,編制了不同的項目。
- 交易是TRY(土耳其里拉),我懷疑谷歌正試圖修復分隔符(','土耳其對其他地方'。'),但如上所述,另一個應用程序也使用TRY。
所以問題是,爲什麼"<null>"
,爲什麼以及如何將一個合適的NSNumber轉換爲這個奇怪的值?