8

私は仕事でiPhoneアプリを継承しましたが、Objective-Cを初めて使用するので、まだ自分の方向性を持っていません。私はこれに似たコードに遭遇しました:

- (void) dealloc {
    [[StaticObject sharedObject] showSomeDialog];

    [super dealloc];
}

私はこれが他の言語で嫌われていることを知っています。私の蜘蛛の感覚は、そのコードを見て夢中になっています。

これは一般的なObjective-Cのイディオムですか?または、修正するためのくだらないコードベースがありますか?

4

2 に答える 2

7

UIコードを-deallocに入れないでください。一般的な経験則では、オブジェクトの解放、オブザーバーの削除など、実行した内容をクリーンアップするためにのみ-deallocを使用します。

このオブジェクトがメインスレッド以外のスレッドに存在する場合はどうなるかを考えてください...これで、UIコードが非メインスレッドで実行されることになりますが、これは悪いことです

于 2010-07-23T13:57:57.017 に答える
0

あなたはいくつかのデバッグ上の理由でそのようなことをすることができます。しかし、私はあなたがこのようなことをするべきではないと思います!これは、オブジェクトの割り当てが解除されるときにダイアログが表示されることを意味します。したがって、特定の時間にダイアログを表示するメカニズムが必要な場合は、割り当てが解除されているオブジェクトに依存させないでください。割り当て解除メソッドでは、実際には、割り当て解除されたオブジェクトによって保持されているすべてのオブジェクトを解放する必要があります。そして、いくつかの凝ったアプリケーション機能を実行していません。

于 2010-07-23T13:53:43.860 に答える