_________
  ∧,,∧   /
 ミ;゚Д゚彡< ゼンゼンんしらにゃー。
  ミつ つ  \>>285さん、ありがとう。
〜ミ ,, ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∪∪  

> インターフェースの中身はメソッドテーブルって事は知っているよね?
知りませんです。
なんとなく、そんな気はしますが。


> そのメソッドテーブルはオブジェクトのインスタンス毎に生成されています。
> インスタンスを廃棄した場合、メソッドテーブルも同時に廃棄されます。

なるほどなるほど。
つまり、インターフェース変数にはメソッドテーブルが入るという事ですね。


> インターフェースの参照を解放する前にインスタンスを廃棄してしまった場合、
> _Releaseメソッドなどを呼びだそうとすると既に存在していない
> メソッドテーブルを参照しようとしてメモリアクセス違反が起きます。

えーーーー!!!

nilが入っていないとメソッドテーブルの実体はなくなっているのに
インターフェース変数の参照が消える時にメソッドテーブルにアクセスしようとするわけですね。

> これは回避不可能なので、あらかじめ nil を代入しておき _Release メソッドの
> 自動呼び出しを抑制するほかありません。

にゃんじゃって〜〜〜!

こんな実装した奴どこの誰ジャー−−

      ∩,,,,,,,,,,,∩ ,,,_
   〜⊂`'''''''''ミ。Д。ミ⊃ ギャフーン
      `'''''''''''∨ ∨