覆盖我自己班级中的保留和释放方法

时间:2012-02-07 16:18:20

标签: iphone objective-c memory-management

我想覆盖我的类MapsLocationView中的retain和release方法,以便了解我在哪里获得额外的版本。请帮我正确地做到这一点

3 个答案:

答案 0 :(得分:6)

这只是在Objective-C中执行你在其他地方所做的事情。

- (oneway void)release;
{
    [super release];
}

- (id)retain;
{
    return [super retain];
}

答案 1 :(得分:1)

这不是正确的方法,您应该使用泄漏仪器或代码分析器来查找额外版本的来源

答案 2 :(得分:1)

对我进行释放保留调查的最佳方式是:

'MapsLocationView.h'
@interface MapsLocationView : UIView {
    int releaseCount;
}

'MapsLocationView.m'
- (void)awakeFromNib {
    releaseCount = 0;
}

-(id)retain {
    NSLog(@"retain count+++:%d", [self retainCount]);
    return [super retain];
}

- (oneway void)release {
    releaseCount++;
    NSLog(@"releaseCount---:%d", releaseCount);
    [super release];
}

我还发现如果你用鼠标右键点击方法,你可以跳到它的定义:)