@interface DataMode : NSObject {
NSString * name;
}
@property (retain) NSString * name;
- initWithName:(NSString * )name_;
@end
@implementation DataMode
@synthesize name;
- initWithName:(NSString * )name_
{
if ([super init] != nil)
{
name = name_;
return self;
}
return nil;
}
@end
- (void) pressed:(id)sender
{
NSString * str = [NSString stringWithFormat:@"zhang"];
DataMode * a = [[DataMode alloc] initWithName:str];
a.name;
a.name;
a.name;
a.name;
a.name;
NSLog(@"name count:%d",[a.name retainCount]);
[ a release];
NSLog(@"str count:%d",[str retainCount]);
}
@end
the output is
name count:7
str count:7
но код не пропускает память. Я получаю результат по утечкам и активным средствам мониторинга.
начинаю, я удивлен
потому что
Кто-то говорит: "@ имя свойства (сохранить)"; eaual ниже равный метод.
- getname
{
return name;
}
если это .Это не может объяснить вышеуказанный результат вывода
Я думаю, что метод должен так
- getname
{
[name retain];
[name autorelease];
return name;
}
так что это может объяснить большое число 7, а не утечь память.
это мое предположение. это занимает слишком много времени. Мне стыдно.
Мое понимание верно ??? приветствую ваш пост и комментарий.