2014-05-14 4 views
1

V3 SDK를 사용하여 iOS에서 상거래 데이터를 Google 애널리틱스로 보내려고합니다. Google에서 제공하는 GAIDictionaryBuilder 클래스를 사용하여 데이터 사전을 작성하고 있습니다 (불행히도 오픈 소스가 아닙니다). createTransactionWithId 및 createItemWithTransactionId 호출의 경우 NSNumber 값 (수익, 가격 등)이 사전 데이터에 제대로 추가되지 않습니다. 수동 수정 들어GAIDictionaryBuilder가 NSNumber 값에 대해 실패합니다.

"&tr" = "<null>"; 

이어서 : 로그 테스트 사전 I는 다음 행 수입 데이터에 대응하는 볼 때 그때 정확하게 수익을 참조 출력

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" = "15.25"; 

예상대로.

는 여기에 몇 가지 단서 :

  • 는이 같은 문제없이 다른 OSX 컴퓨터에서 컴파일 다른 프로젝트에서 동일한 코드를 사용합니다.
  • 거래가 TRY (터키 리라)에 있습니다. Google에서 분리 기호 (','터키어와 '다른 지역')를 수정하려고하는 것으로 의심되지만 위의 설명처럼 다른 앱에서도 TRY를 사용하고 있습니다.

이유는 무엇입니까 "<null>" 왜, 왜 NSNumber를이 기괴한 값으로 변환하지 못합니까?

답변

0

결국 나는이 문제를 해결하기 위해이 문제를 해결했습니다. 나는 그것의 floatValue를 얻음으로써 새로운 NSNumber를 할당했고 그것은 null 값을 수정하는 것처럼 보였다.

덧붙여서 Google Analytics 라이브러리 버전 3.07 readme는 수정 된 유사한 문제를 언급하지만 3.03이나 3.07은 실제로 내 문제를 해결하지 못했습니다.