[objective-c]手習いインスタンスの自動解放
2008/11/11
objective-c
Objective-Cです。
インスタンスの自動解放(autorelease)です。
メモリ確保、解放といった手順をほとんど意識せずプログラムできる環境になれたので、頭がおいついておりません。
- NSAutoreleasePool Class Reference
- Memory Management of Cocoa
- こたつつきみかん : NSAutoreleasePool
- 藤棚工房別棟 −徒然−: Cocoa/Objective-Cのメモリ管理2: Autorelease Pool
まだ使う場面が頭の中でイメージできてませんが、とりあえず、コード。
#import <Foundation/NSObject.h>
#import <Foundation/NSAutoreleasePool.h>
@interface A:NSObject
- (void)go;
@end
@implementation A
- (void)go
{
NSLog(@"OK");
}
@end
int main(void){
id a;
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
a = [A alloc];
[a go];
[a autorelease];
[pool release];
return 0;
}
#import <Foundation/NSAutoreleasePool.h>
@interface A:NSObject
- (void)go;
@end
@implementation A
- (void)go
{
NSLog(@"OK");
}
@end
int main(void){
id a;
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
a = [A alloc];
[a go];
[a autorelease];
[pool release];
return 0;
}
メモ。
NSAutoreleasePoolはいくつも用意できる。
最後につくったものが現在のpool。
NSObjectにautoreleaseがあるが、 NSAutoreleasePoolにaddObjectがあるらしい。
: