0

以下の例では、abcを弱参照として定義しました。

@interface myClass : NSObject
    @property (nonatomic, weak) Line *abc

@end

- (id)init
{
    abc = [[Line alloc] init]
}

誰も強く指さないので、abcをランダムに割り当て解除できますか?Objectivecのような言語で物事がどのように割り当て解除されるかを理解するのに苦労しています。ガベージコレクターがないので、何がそれをメモリから正確に削除しますか(単にnilに設定してdeallocと呼びますか?)

myClassがnilに設定されると、参照カウントが0のすべてのインスタンス変数でdeallocが呼び出されます。myClassがnilに設定されるまで、abcは常にメモリ内にあります。私は正しいですか?

4

1 に答える 1

1

weak参照は、オブジェクトの割り当て解除を停止しないオブジェクトへの参照です。

つまり、所有者の関係は作成されません。以前はこれを行いましたが:

ARCでは、weakを使用して、それが指すオブジェクトを所有していないことを確認します。

詳細はこちら

于 2013-03-14T03:30:26.273 に答える