0

私の iOS アプリでは、 を使用してアプリ デリゲートへの参照を取得したいと考えていますが、[[UIApplication sharedApplication] delegate]これはUABaseAppDelegateSurrogateカスタムUIApplicationDelegateクラスではなくクラスのインスタンスを返しています。

このサロゲートが何らかの形で通知の受信に使用されていることは理解していますが、これは必要ですか? 私のアプリ デリゲートは、通知を受信するために必要なすべてのメソッドを実装しています。カスタム アプリ デリゲートでメソッドを呼び出せるように、このサロゲート クラスをバイパスしたいと考えています。これがいつから始まったのかはわかりませんが、以前は からカスタム アプリのデリゲートを取得していました[[UIApplication sharedApplication] delegate]

4

2 に答える 2

1

フレームワークからのアプリケーションデリゲートだと思います。main.m ファイルを見てください。UIApplicationMain はどのように呼び出されますか? 3d パラメーターはアプリケーション クラス、4 番目はアプリケーション デリゲート クラスです。ただし、カスタム デリゲート クラスに変更すると、フレームワークの機能が失われる可能性があります。そのため、より深く調べる必要がありますUABaseAppDelegateSurrogate- おそらくそれをサブクラス化できますか? それとも完全に取り除かれますか?

于 2013-09-30T16:00:43.640 に答える
0

アーバン飛行船のドキュメントから:

Urban Airship ライブラリはアプリと自動的に統合されるため、プッシュ関連の UIApplicationDelegate プロトコル メソッドを実装したり、ライブラリに通知を渡したりする必要はありません。ライブラリは、それ自体をアプリ デリゲートとして設定し、メッセージをインターセプトして元のアプリ デリゲートに転送することで、これを行うことができます。この動作を無効にして、独自のデリゲートにデリゲート コールバックを実装する場合は、AirshipConfig.plist ファイルまたは [UAirship takeOff:(UAConfig *)config] に渡される UAConfig オブジェクトで automaticSetupEnabled を NO に設定できます。

于 2013-10-21T18:19:11.940 に答える