NSOperationQueue和Memory

时间:2015-05-12 13:45:26

标签: ios memory-leaks nsoperationqueue

我一直在使用NSOperationQueue,我的内存问题非常奇怪。 我已经尝试将问题缩小到最简单的问题,我得到了:

在init中:

_queue = [[NSOperationQueue alloc] init];

随后:

TestOperation op = [[TestOperation alloc] init];
[self.queue addOperation: op];

然后在主要操作调用的方法中:

NSLog(@"I'm right here!");

如果我这几千次打电话,我的记忆力就会不断增长。

我只从我的方法中删除NSLog(因此称为空方法)我的记忆不会改变。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

当您向NSOperationQueue添加操作时,操作队列拥有该对象并将负责释放它。也许你没有给NSOperationQueue足够的时间来释放内存并查看结果?

对于这种情况,你可以使用@autorelease块包围它,但由于操作队列是负责释放对象的操作队列,我不知道它是否可行。值得一试。