私は、次のフレーズの「それ以外の」および「限り」の使用法と混同しています。
それ以外の場合、実装メソッドが静的型のシグニチャに従う限り、ARCはObjective-C型システムを強制しません。ARCが無効なポインタにさらされた場合、これは未定義の動作です。
ARCの目的では、有効なオブジェクトとは、「正常に動作する」保持操作を備えたオブジェクトです。具体的には、Objective-Cメッセージ送信機構が次のメッセージを正常に送信できるようにオブジェクトをレイアウトする必要があります。
- 保持し、引数を取らず、オブジェクトへのポインタを返します。
- リリース、引数を取らず、voidを返します。
- 自動解放。引数を取らず、オブジェクトへのポインタを返します。
http://clang.llvm.org/docs/AutomaticReferenceCounting.html
次のことを推測できますか。
...(そうでない場合は忘れてください)...実装メソッドが静的型のシグネチャに従う場合、ARCはObjective-C型システムを適用します。
それはretain、release、autoreleaseメソッドのシグネチャについて話しているのですか?もしそうなら、それは否定的な意味を持っていますか?
実装メソッドが静的型のシグニチャに従う場合、 ARCはObjective-C型システムを強制しません。