2015-09-15 12 views
6

Pracował idealnie na Swift 1,2Swift 2.0 - błąd budowniczy Analytics zdarzenia Google - NSMutableDictionary nie jest wymienialna na [NSObject: AnyObject]

Kod:

var build = GAIDictionaryBuilder.createEventWithCategory("Record Counter", action: "Images Taken", label: "usersad", value: 1 ).build() as [NSObject : AnyObject] 
self.tracker.send(build) 

Błąd:

NSMutableDictionary is not convertible to [NSObject : AnyObject] 

Każdy pomysł?

+1

Ponieważ jest to celowy słownik języka C, nie trzeba wykonywać żadnych rzutowań. Podczas mostkowania z obiektu NSDictionary do słownika Swift wynikowy słownik jest typu [NSObject: AnyObject] – Shripada

+0

Próbowałem usunąć rzutowanie, ale pokazuje mi ten sam błąd. więc co powinienem zrobić? –

+0

@Shripada zobacz mój komentarz powyżej, proszę –

Odpowiedz

18

Rzucasz swoje wydarzenie źle. Oto poprawny sposób i jeden sposób na zrobienie tego.

let tracker = GAI.sharedInstance().defaultTracker 

Inicjalizacja swoją Śledzenie zdarzeń jak NSObject

let eventTracker: NSObject = GAIDictionaryBuilder.createEventWithCategory(
       "ui_action", 
       action: "button_press", 
       label: "play", 
       value: nil).build() 

Oddaj swój NSObject jak Anyobject wewnątrz metody wysyłania.

tracker.send(eventTracker as! [NSObject : AnyObject]) 
+0

Dzięki LGL! :) u r awesome –

+0

to działa, ale jest niefortunne: - \ – dowi

+0

jeśli ostatnia linia będzie: tracker.send (eventTracker jako! [NSObject: AnyObject]) – BuzzCloudAU