我的应用程序里有很多这样的台词
UIColor *myColor = [UIColor colorWithRed:corR green:corG blue:corB alpha:1.0];仪器上说这些管道漏水了。据我所见,这不是正式的,是一次异种手术(不是吗?)我不认为有必要释放对象,但正如仪器抱怨的那样,我增加了几行代码
[myColor release]在使用变量之后,来取悦野兽。
我这样做会有问题吗,比如撞车之类的?
显然,这样做是为了解决问题,但我不愿意释放一个没有分配的对象。
你认为如何?
谢谢。
E D I T
我认为这是xcode问题或框架泄漏。来证明我用
UIColor *myColor = [[UIColor alloc] initWithRed:corR green:corG blue:corB alpha:1.0];然后物体就可以安全释放了..。
这样做解决了问题。
发布于 2010-10-06 00:34:18
不要释放对象,你不拥有它,最终你会崩溃的。UIColor可能只是为您缓存这些颜色,而仪器无法知道这一点,因此它将它们报告为泄漏(基本上是创建的东西,您已经没有引用了,但还没有被释放)。
尝试运行一段时间的仪器(使用模拟器),然后发送一个内存警告,看看UIColor是否会清除它的缓存。无论哪种方法,您都无法真正解决发生在核心框架内的漏洞,所以不要尝试。只需确保你并没有以某种方式泄露它们(比如在某个时候保留它们,并且永远不释放它们)。
发布于 2010-10-06 00:34:15
如果这就是你所要做的,那么myColor绝对不会泄漏。如果您在其他任何地方保留该对象而不释放它,则该对象正在泄漏。
永远不要释放一个你不记得保留的对象。Evvarrrrrrrrr.但我怀疑你只是把它藏在某个地方,甚至没有注意到。
发布于 2010-10-06 02:51:05
有时模拟器可以在没有泄漏的情况下报告泄漏,请确保还可以查看设备上是否也有相同的泄漏。
但是由于使用模拟器的速度更快,所以首先尝试在那里找到一些东西。
https://stackoverflow.com/questions/3868742
复制相似问题