私は、変数の保持と解放について少し混乱しています。誰かが教えてくれるものを教えてくれますか?
これらは、私の質問です:私はAが
Object *A = [[Object alloc] init]
を割り当てられたオブジェクトを持って
この増加は、カウントを保持していますか?
Object *A = [[[Object alloc] init] retain]
と同じですか?
私がretainを呼び出すと、オブジェクトは解放されるまで保持されます。
2.1。 私はObject A
を保持しています。このObject A
は引数として関数に渡されました。その後、私はそれをリリースしました。Object A
のメモリを解放しますか?存在する場合は、Object A
は存在しなくなります。2.2
Object A
をリリースするのではなく、2.1を実行してください。私はローカル変数Object *B = A
を作成しました。私がObject B
をリリースした場合は、Object A
もリリースされます。または、私がB
を保持していれば、A
も保持されますか?
私はちょっと混乱しています。私はここに誰かに私に正しい道を向けるように頼みたいと思います。 alloc
(又はnew
)を呼び出す
おかげ
関数にローカル変数があり、その関数が実行された場合、ローカル変数は破棄されるか、メモリに残ります。 – LittleFunny
変数は消え去りますが、ポインタの場合はポインタが自動的に消えません。 – morningstar