我一直在使用NSOperationQueue,我的内存问题非常奇怪。 我已经尝试将问题缩小到最简单的问题,我得到了:
在init中:
_queue = [[NSOperationQueue alloc] init];
随后:
TestOperation op = [[TestOperation alloc] init];
[self.queue addOperation: op];
然后在主要操作调用的方法中:
NSLog(@"I'm right here!");
如果我这几千次打电话,我的记忆力就会不断增长。
我只从我的方法中删除NSLog(因此称为空方法)我的记忆不会改变。
我在这里做错了什么?
答案 0 :(得分:0)
当您向NSOperationQueue添加操作时,操作队列拥有该对象并将负责释放它。也许你没有给NSOperationQueue足够的时间来释放内存并查看结果?
对于这种情况,你可以使用@autorelease块包围它,但由于操作队列是负责释放对象的操作队列,我不知道它是否可行。值得一试。