以下のスニペットは、Apple の ObjC ランタイム (libobjc) ソース コードから取得したものです。これは正確には何を意味するのだろうか。(あまりGoogle対応ではありません、申し訳ありません)
// HACK -- the use of these functions must be after the @implementation
id bypass_msgSend_retain(NSObject *obj) asm("-[NSObject retain]");
void bypass_msgSend_release(NSObject *obj) asm("-[NSObject release]");
id bypass_msgSend_autorelease(NSObject *obj) asm("-[NSObject autorelease]");
アップデート:
bypass_msgSend_release() の呼び出しが生成するものは次のとおりです。
movl -4(%ebp), %eax
movl %eax, (%esp)
calll "-[NSObject release]"