2012-11-18 9 views
14

Po wykonaniu przegląd znaleźć tutaj:Google Analytics dla iOS SDK 2.0 - Co zrobić ze zmienną "tracker" w delegacie aplikacji?

https://developers.google.com/analytics/devguides/collection/ios/v2/

ja widząc Unused variable "tracker" ostrzeżenie na ostatniej linii kodu dodana do:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

Oto kod z głównej strony Google :

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    // Optional: automatically track uncaught exceptions with Google Analytics. 
    [GAI sharedInstance].trackUncaughtExceptions = YES; 
    // Optional: set Google Analytics dispatch interval to e.g. 20 seconds. 
    [GAI sharedInstance].dispatchInterval = 20; 
    // Optional: set debug to YES for extra debugging information. 
    [GAI sharedInstance].debug = YES; 
    // Create tracker instance. 
    id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"UA-YOUR-TRACKING-ID"]; 

} 

tracker naprawdę nie widzi żadnego sensu od tego momentu, a dokument poglądowy tak naprawdę nie mówi, co z nim zrobić. Jakieś sugestie?

Odpowiedz

24

Jeśli nie potrzebują odniesienie do swojej trackera (i wygląda na to, że nie robią) można usunąć ostrzeżenie o zmianie ostatniego wiersza kodu z

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"UA-YOUR-TRACKING-ID"]; 

do

[[GAI sharedInstance] trackerWithTrackingId:@"UA-YOUR-TRACKING-ID"]; 

przypadek użycia za prowadzenie odniesienie do trackera w tym bloku kodu może być, jeśli chce utworzyć wydarzenie dla gdy użytkownik uruchamia aplikację, bez konieczności wzywania [GAI sharedInstance] uzyskać tego odniesienia.

+0

Zastanawiam się, czy intencją jest, aby mieć 'tracker' być globalny Singleton. Powodem, dla którego to mówię, jest to, że przykład śledzenia elementów dotykowych odnosi się do instancji 'tracker', która nie istnieje, jeśli nie ma" zewnętrznego "globalnego lub w inny sposób inicjalizuję' trackera' na każdym kontrolerze widoku. –

+0

Być może - wydaje mi się, że nie widzę potrzeby tworzenia własnej globalnej instancji, jeśli ta sama wersja zostanie pobrana przez wywołanie [GAI sharedInstance] za każdym razem, kiedy zechcesz z niej skorzystać. – rickerbh

+1

OK, po obejrzeniu "GAI.h" i "GAITrackedViewController.h" wygląda na to, że błąd w przykładowym kodzie dla zdarzeń przycisku dotykowego dotykowego polega na tym, że 'tracker' naprawdę musi być' self.tracker'. Ta blurb tutaj https://developers.google.com/analytics/devguides/collection/ios/v2/wskazuje, że może to być częścią projektu. Innymi słowy, nie ma potrzeby jawnego wywoływania "GAI sharedInstance". Myślę. Nadal muszę sprawdzić, czy to działa. –

5

Można tylko dodać

#pragma unused(tracker) 

po linii

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"UA-YOUR-TRACKING-ID"]; 
Powiązane problemy