1

我正在大力研究内存微调,大多数问题都在 stackoverflow 的帮助下得到解决。但最后我被 NSMutableArray 初始化的严重内存泄漏所震惊。

- (NSMutableArray *)children {

    if (!_children) {

        _children = [NSMutableArray new]; // <-- here is the memory leak
    }

    return _children;
}
  • 我正在处理一个我们使用 100% ARC 的项目。
  • 除了主线程(没有使用线程)之外,不会触发特定的类初始化。
  • 但是...这是我们使用递归的唯一地方
  • 此外,声明

    @property(强,非原子)NSMutableArray *children;

    @synthesize children = _children;

是否在各自的 .h 和 .m 文件中...

什么可能是问题....?

提前感谢您的努力...

更多信息...

- (id)init {

    if (self = [super init]) {

        [self setIsRoot:NO];
//        [self setChildren:[NSMutableArray new]]; // <-- was before, but I moved to custom setter
    }
    return self;
}

- (id)initAsRoot
{
    if (self = [self init]) {
        self.level = -1;
        self.index = -1;
        self.isExpaned = YES;
        self.value = @"Root";
        self.isRoot = YES;
    }
    return self;
}
4

0 回答 0