2017-10-26 4 views
0

Firebaseを使用してアプリケーションを追跡しようとしています。ここに私のコードは次のとおりです。setScreenname()はlogEvent()の後にのみ発生します

import UIKit 
import Firebase 

class Section1121: UIViewController { 

    override func loadView() { 
     super.loadView() 
     Analytics.setScreenName("Screen1.1.2.1", screenClass: "Section1121") 
    } 

    override func viewDidAppear(_ animated: Bool) { 
     super.viewDidAppear(true) 

     // Do any additional setup after loading the view. 
     Analytics.logEvent(AnalyticsEventAddToCart, parameters: nil) 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

私は、次の順序を期待:
1:
2画面名を変更せずにデフォルトscreen_viewイベントが発生し、:setScreenname火災やスクリーン名を変更し
3:add_to_cartイベントを送信logevent火を、新しいスクリーンネームで

しかし、実際のデバッグビューの順序は1 - > 3 - > 2で、add_to_cartは新しいスクリーンネームなしで記録されます。
ここにはscreenshot of debug viewがあります。

コードsetScreennameは確かにlogEventの前ですが、発射順序が変更された理由は何ですか?
logEventより前に発火させることはできますか?

+0

viewDidAppearでsetScreenNameを呼び出す必要があります。loadViewではなく、ユーザーに画面を表示する必要があります。 – adbitx

答えて

0

adbitxのアドバイスに続いて、私はlogEventの直前にをlogEventの直前にviewDidAppearに移動し、コードが正しく動作しているようです。

関連する問題