2012-11-18 17 views
14

Dopo aver seguito la panoramica trovato qui:Google Analytics per iOS SDK 2.0 - Cosa fare con la variabile "tracker" nel delegato dell'app?

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

sto vedendo un Unused variable "tracker" allarme sull'ultima riga del codice aggiunto:

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

Ecco il codice dalla pagina della panoramica di 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 non vede assolutamente alcun uso oltre questo punto e il documento di panoramica non dice veramente cosa fare con esso. Eventuali suggerimenti?

risposta

24

Se non avete bisogno di un riferimento al vostro inseguitore (e sembra come se non lo fai) è possibile rimuovere l'avviso modificando l'ultima riga di codice da

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

a

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

Un caso di utilizzo per mantenere un riferimento al tracker in questo blocco di codice potrebbe essere se si desidera creare un evento per quando un utente avvia l'applicazione, senza dover chiamare il numero [GAI sharedInstance] per ottenere quel riferimento.

+0

Mi chiedo se l'intento è quello di avere 'tracker' essere un singleton globale. La ragione per cui dico questo è che l'esempio per i pulsanti di tracciamento si riferisce a un'istanza di 'tracker' che non esiste se non si esegue 'esternamente' un global o altrimenti si inizializza' tracker' su ogni viewcontroller. –

+0

Forse - Immagino di vedere molto poco la creazione della propria istanza globale di esso se viene recuperata la stessa versione chiamando [GAI sharedInstance] ogni volta che si desidera utilizzarlo. – rickerbh

+1

OK, dopo aver consultato 'GAI.h' e' GAITrackedViewController.h' sembra che l'errore nel codice di esempio per gli eventi di tocco del pulsante di tracciamento sia che 'tracker' deve davvero essere' self.tracker'. La descrizione qui https://developers.google.com/analytics/devguides/collection/ios/v2/advanced suggerisce che questo potrebbe essere parte del design. Ho altre parole, non c'è bisogno di chiamare esplicitamente 'GAI sharedInstance'. Credo. Devo ancora vedere se funziona. –

5

Si può solo aggiungere

#pragma unused(tracker) 

dopo la linea di

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