親切すぎるiPhoneアプリ開発の本

オブジェクトの生涯 - オブジェクトの寿命

Icon comment count 0
Icon stock count 0

1 オブジェクトの寿命

まずは、「オブジェクトが誰からも参照されなくなる時点」とはいつなのかを、実例をあげて説明しましょう。

例えば次のような関数の中でPersonインスタンスを作る場合を考えてください。

この場合、secretDate関数から戻る時が、secretDate関数内で作成したPersonが誰からも参照されなくなる状態です。

↓ 例(関数の中で消滅するPerson)
func secretDate() {
    let secretGirlFriend = Person(name:"ユリ", age:17, hairColor:"黒", 
    personality:"控えめ", hobby:"料理")
    println(今日は\(secretGirlFriend.name)と隠れてデートした。")
} ← secretGirlFriendはここで消える
secretDate() ← 関数呼び出し

前回説明したように、関数の中で用意した定数secretGirlFriendは、関数から戻る時にメモリから消えるので、その時点でPersonへの参照は1つもなくなります。

1.1 ARCが参照の数をカウントする

そして、この過程を見張って、オブジェクトに対する参照が完全になくなった時点で、オブジェクトを破棄するのがARCです。

↓ secretDate関数が呼び出されて戻ってくるまでの過程

出典情報

Medium

親切すぎるiPhoneアプリ開発の本

  • 著者: 國居 貴浩

コメント

    コメントはありません