コマンドラインアプリケーションで2つのクラス(FirstClassとSecondClass)を作成しました。FirstClassメソッドでSecondClassのオブジェクトを作成しました。次に、mainでそのメソッドを呼び出し、そのオブジェクトに割り当てられたメモリを解放します。私のコードは次のとおりです。
@implementation FirstClass
+(NSMutableArray *) addObject{
NSMutableArray *namesArray = [[[NSMutableArray alloc]init] autorelease];
SecondClass *second = [[SecondClass alloc]init];
NSLog(@"Before adding object, count = %ld ",[second retainCount]); //RC = 1
[second setName:@"Mobicule"];
[namesArray addObject:second];
NSLog(@"First object addeded, count = %ld ",[second retainCount]); //RC = 2
[second release];
NSLog(@"After release, count = %ld",[second retainCount]); //RC = 1
return namesArray;
}
@end
保持カウントをゼロにしたい。
そして主な機能は以下の通りです。
int main (int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
// NSLog(@"Hello, World!");
NSMutableArray *arrayMain = [[NSMutableArray alloc]init];
arrayMain = [FirstClass addObject];
for (int i = 0; i<[arrayMain count]; i++) {
NSLog(@"%@",[[arrayMain objectAtIndex:i] name]);
}
NSLog(@"%ld",[arrayMain retainCount]);
}
return 0;
}