2015-06-02 14 views
13

Tôi muốn theo dõi sự kiện khi người dùng nhấn vào UIButton bằng Google Analytics. Tôi có mã bên dưới nhưng tôi đã hiển thị lỗi. Tôi làm sai ở đâu? Cảm ơnUIButton Theo dõi sự kiện Google Analytics (Swift)

Code:

@IBAction func startGame1(sender: AnyObject) { 

     var tracker = GAI.sharedInstance().defaultTracker 

     tracker.send(GAIDictionaryBuilder.createEventWithCategory("Game 1", action: "Start Pressed", label: "Start Timer One", value: nil).build()) 
    } 

Lỗi:

Cannot invoke 'send' with an argument list of type'(NSMutableDictionarry)' 
+0

thể trùng lặp của [Google Analytics không làm việc với Swift 1.2 và Xcode 6.3] (http://stackoverflow.com/questions/29591930/google-analytics-not-working-with -swift-1-2-and-xcode-6-3) – jregnauld

Trả lời

15

Từ Swift 1.2 được phát hành, bạn phải đúc GAIDictionaryBuilder như [NSObject : AnyObject]

Xem bài đăng này trên StackOverflow

Google Analytics not working with Swift 1.2 and Xcode 6.3

Có sự là giải pháp cho vấn đề của bạn

@IBAction func startGame1(sender: AnyObject) { 

     var tracker = GAI.sharedInstance().defaultTracker 

     tracker.send(GAIDictionaryBuilder.createEventWithCategory("Game 1", action: "Start Pressed", label: "Start Timer One", value: nil).build() as [NSObject : AnyObject]) 
    } 

Hy vọng nó sẽ giúp!

+2

Xin chào, nó giúp ích trong Swift 2.0, lỗi: NSMutableDictionary không thể chuyển đổi thành [NSObject: AnyObject] . gợi ý? –

14

Câu trả lời này đã được cập nhật cho Swift 3

let tracker = GAI.sharedInstance().defaultTracker 
tracker.set(kGAIDescription, value: "ScreenViewName") 
let eventTracker: NSObject = GAIDictionaryBuilder.createScreenView().build() 
tracker.send(eventTracker as! [NSObject : AnyObject]) 

HOẶC ...

let tracker = GAI.sharedInstance().defaultTracker 
let eventTracker: NSObject = GAIDictionaryBuilder.createEvent( 
      withCategory: "SomeCategory", 
      action: "SomeAction", 
      label: "SomeLabel", 
      value: nil).build() 
tracker.send(eventTracker as [NSObject : AnyObject]!) 
+0

Cảm ơn tuyệt vời ... Tài liệu của Google chưa được cập nhật đầy đủ cho Swift ... ngoài ra, việc thực hiện theo hướng dẫn SDK iOS của họ không hoạt động: ( –

+0

@ChrisAllinson niềm vui của tôi) –

12

Swift 3: Bạn nên sử dụng "[AnyHashable: Bất kỳ]" thay vì [NSObject: AnyObject] .

Nguồn: https://developer.apple.com/swift/blog/?id=39

guard let tracker = GAI.sharedInstance().defaultTracker else {return} 
let eventTracker: NSObject = GAIDictionaryBuilder.createEvent(
    withCategory: YOUR_CATEGORY_NAME, 
    action: YOUR_ACTION_NAME, 
    label: YOUR_LABEL_NAME, 
    value: nil).build() 
tracker.send(eventTracker as! [AnyHashable: Any]) 
+1

Đây là câu trả lời đúng – Gibraltar

Các vấn đề liên quan