您的位置:首页 > 大数据 > 人工智能

引用计数(retainCount)

2013-09-22 16:39 176 查看
ClassA.h:

#import <Foundation/Foundation.h>
@interface ClassA:NSObject
{
NSString *name;
}
-(void)setName:(NSString*)s;
-(NSString*)name;
-(void)dealloc;

@end


ClassA.m:

#import "ClassA.h"
@implementation ClassA
-(void)setName:(NSString *)s
{
name=s;
[name retain];
}
-(NSString*)name
{
return name;
}
-(void)dealloc
{
NSLog(@"delloc coling!");
[name release];
[super dealloc];
}
@end


main.m:

#import <Foundation/Foundation.h>
#import "ClassA.h"
int main(int argc,const char *argv[])
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc]init];
NSMutableString *str1=[NSMutableString stringWithString:@"Sam"];
ClassA *classA=[[ClassA alloc]init];
NSLog(@"Str1 count: %x",[str1 retainCount]);

[classA setName:str1];
NSLog(@"str1 count:%x",[str1 retainCount]);

[str1 release];
NSLog(@"str1 count:%x",[str1 retainCount]);
[classA release];
[pool drain];
return  0;
}


console log:

2013-09-22 16:35:50.886 demo[1028:303] Str1 count: 1

2013-09-22 16:35:50.890 demo[1028:303] str1 count:2

2013-09-22 16:35:50.891 demo[1028:303] str1 count:1

2013-09-22 16:35:50.892 demo[1028:303] delloc coling!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: