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