Objective-Cのメモリ管理で自信がなくなる瞬間は誰しも必ずあると思う。 [iOS]
「エキスパート Objective-Cプログラミング 〜 iOS/OS Xのメモリ管理とマルチスレッド 〜」という本を読んでたところ、
「自分が生成したオブジェクトの所有者は自分である」という表現で、自分がなんだかわからなくなって、自分探しをしてみました。
#import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { @autoreleasepool { NSObject *object1 = [[NSObject alloc] init]; NSObject *object2 = nil; object2 = object1; [object1 release]; NSObject *object3 =nil; object3 = object2; [object2 release]; } return 0; }
import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { @autoreleasepool { NSObject *object1 = [[NSObject alloc] init]; NSObject *object2 = nil; object2 = object1; [object2 release]; NSObject *object3 =nil; object3 = object2; [object3 retain]; [object1 release]; } return 0; }
結構、どっちがどういうことか、わからない人いるんじゃないの?と思った次第です。