2012-11-18 2 views
14

Nachdem Sie die Übersicht hier:Google Analytics für iOS SDK 2.0 - Was ist mit der Variablen "Tracker" im App-Delegaten zu tun?

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

ich in der letzten Zeile des Codes eine Unused variable "tracker" Warnung sehe hinzugefügt:

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

Hier ist der Code aus dem Google-Übersichtsseite :

- (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 sieht wirklich keinen Nutzen über diesen Punkt hinaus und das Übersichtsdokument sagt nicht wirklich, was damit zu tun ist. Irgendwelche Vorschläge?

Antwort

24

Wenn Sie nicht über einen Verweis auf Ihre Tracker müssen (und es sieht aus wie Sie nicht tun) können Sie die Warnung entfernen, indem die letzte Zeile des Codes von

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

zu

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

ein Anwendungsfall für in diesem Codeblock einen Verweis auf die tracker halten könnte, wenn Sie [GAI sharedInstance], ohne zu erhalten, dass der Bezug zu nennen ein Ereignis für, wenn ein Benutzer startet die Anwendung, schaffen wollen.

+0

Ich frage hinzufügen mich, ob es die Absicht 'tracker' zu haben, ist ein global Singleton sein. Der Grund, warum ich das sage ist, dass das Beispiel für Berührungen Tracking-Taste bezieht sich auf eine 'tracker' Instanz, die nicht existiert, wenn man' kein globale extern' oder auf andere Weise initialisieren 'tracker' auf jedem Viewcontroller. –

+0

Vielleicht - ich glaube, ich sehe sehr wenig Sinn, Ihre eigene globale Instanz davon zu schaffen, wenn die gleiche Version durch den Aufruf [GAI sharedInstance] abgerufen wird, wenn Sie es verwenden möchten. – rickerbh

+1

OK, nach einem Blick auf 'GAI.h' und' GAITrackedViewController.h' es wie der Fehler in dem Beispielcode sieht Ereignisse für die Verfolgung von Tastendruck ist, dass 'tracker' wirklich sein muß' self.tracker'. Der Klappentext hier https://developers.google.com/analytics/devguides/collection/ios/v2/advanced weist darauf hin, dass dies Teil des Designs sein könnte. I andere Wörter, keine Notwendigkeit, 'GAI sharedInstance' ausdrücklich zu nennen. Ich denke. Ich muss noch sehen, ob es funktioniert. –

5

Sie können nur

#pragma unused(tracker) 

nach der Linie

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