2016-08-03 4 views
0

RBAppDelegateをサブクラス化し、application:didFinishLaunchingWithOptions:をオーバーライドすると、決して実行されません。そのヒント?アプリケーション:didFinishLaunchingWithOptions:RBAppDelegateをサブクラス化するときに実行されない

class AppDelegate: RBAppDelegate { 

    override func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

     super.application(application, didFinishLaunchingWithOptions: launchOptions) 

     // won't be executed... 
     configureStuff() 

     return true 
    } 

} 

答えて

1

RBAppDelegate自体はdidFinishLaunchingWithOptionsを実装していません。プロパティを提供し、複数のクラスがイベントを監視できるようにします。あなたのアプリ内では、RBAppDelegateObserverプロトコルを実装する別のクラスを作成する必要があります。この呼び出しの中で、あなたはapplicationDidFinishLaunchingを実装する必要があり、その後、FYI [appDelegate.observers addObserver:youclass]

経由でRBAppDelegateクラスにこれを追加します。通常のようにあなたがUIApplicationDelegateプロトコルを実装し、通常のクラスを使用し続けることができますが、RBAppDelegateが提供する機能を必要としない場合。

+0

私は 'class AppDelegateObserver:NSObject、RBAppDelegateObserver'のインスタンスが作成された' override AppSet :: RBAppDelegate'を 'override init()'(それ以外は何もありません)に持っていて、 'observers.addObserver(AppDelegateObserver())'。 'AppDelegateObserver'では、' applicationDidFinishLaunching'を実装し、それを起動後設定用の場所として使用しますか?これは意図された方法であり、複数のオブザーバを登録するために使用されます。 'RBAppDelegateObserver'は通常のイベントのように見えます。' UIApplicationDelegate'は? – RyuX51

+0

はい、正しいです。この方法を使用すると、UIApplicationDelegateイベントに対して複数のオブザーバを持つことができます。 –

関連する問題