【发布时间】:2015-05-12 13:45:26
【问题描述】:
我一直在使用 NSOperationQueue,但我遇到了非常奇怪的内存问题。 我已经尝试将问题简化为最简单的问题,在这里我得到了:
在初始化中:
_queue = [[NSOperationQueue alloc] init];
稍后:
TestOperation op = [[TestOperation alloc] init];
[self.queue addOperation: op];
然后在main调用的方法中运行:
NSLog(@"I'm right here!");
如果我调用它数千次,我使用的内存只会不断增长。
我只从我的方法中删除了 NSLog(因此调用了一个空方法)我的记忆没有改变。
我在这里做错了什么??
【问题讨论】:
-
op 也是类的成员还是在函数内部?我看到您正在声明队列,就好像它在函数内部一样,但是您正在做类似 self.queue 的事情,我的意思是队列是该类的属性。
-
是的,抱歉,已更正,我只是尝试将重要的行放在这里。速度太快了。
-
什么叫千遍?你有没有开始你的操作队列。我闻到你一直在向一个从未开始的队列添加操作。
-
是的,它已启动并且打印在控制台中打印。我有一个简单的 for 循环,该循环调用该方法创建操作并将其添加到队列中一千次。有关内存增长的可能解释(我目前仍在调查),请参阅下面的其他评论。
标签: ios memory-leaks nsoperationqueue