0

私は現在、iOS アプリケーションに取り組んでいますが、これは非常に面倒なことが 1 つあります... まあ、とにかく面倒です: オブジェクト プロパティが保持されているかどうかを知るために、常にドキュメントを確認する必要があります (たとえば、UITextField の setDelegate はデリゲートを割り当てて保持しませんが、setFont 関数は保持します... https://developer.apple.com/library/ios/#documentation/uikit/reference/UITextField_Class/Reference /UITextField.html )

それは... 痛いです。そのようなことを Xcode で直接知る方法はありますか?

前もって感謝します

4

3 に答える 3

2

デリゲートは特殊なケースです。通常、デリゲートとして設定するのは、デリゲート対象のオブジェクト以上の有効期間を持つオブジェクトだからです (つまり、ビュー コントローラーはテキスト フィールドのデリゲートになります)。この設計パターンにより、保持サイクルを回避するために、デリゲートは保持されずに割り当てられます。他のオブジェクトのデリゲートとして機能する新しいオブジェクトを作成している場合は、それを保持する必要がありますが、そのようにするのは適切ではありません。

残りのケースについては、あなたの問題が何であるか、またはドキュメントをチェックしている理由が本当にわかりません。フレームワーク オブジェクトがそのプロパティに対して行う保持などについて気にする必要はありません。独自のコードで行った保持と解放についてのみ気にする必要があります。

UIKitオブジェクトがそれを保持していないために保持しなければならないUIKitオブジェクトの非デリゲートプロパティの例はありますか?

于 2012-02-06T14:40:40.567 に答える
0

私は Objective C を初めて使用しますが、実際に知る必要はないと思います。プロパティを渡すだけで、それを保持するかどうかはクラス (この場合は UITextField) 次第です。他の目的で必要でない限り、渡した後も保持する必要はありません。

また、ARC に切り替えてみてください。初心者の頭痛の種が大幅に少なくなります。

于 2012-02-06T13:20:35.983 に答える