首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIColor泄露.需要释放对象吗?

UIColor泄露.需要释放对象吗?
EN

Stack Overflow用户
提问于 2010-10-06 00:29:16
回答 3查看 4.3K关注 0票数 6

我的应用程序里有很多这样的台词

代码语言:javascript
复制
UIColor *myColor = [UIColor colorWithRed:corR green:corG blue:corB alpha:1.0];

仪器上说这些管道漏水了。据我所见,这不是正式的,是一次异种手术(不是吗?)我不认为有必要释放对象,但正如仪器抱怨的那样,我增加了几行代码

代码语言:javascript
复制
[myColor release]

在使用变量之后,来取悦野兽。

我这样做会有问题吗,比如撞车之类的?

显然,这样做是为了解决问题,但我不愿意释放一个没有分配的对象。

你认为如何?

谢谢。

E D I T

我认为这是xcode问题或框架泄漏。来证明我用

代码语言:javascript
复制
UIColor *myColor = [[UIColor alloc] initWithRed:corR green:corG blue:corB alpha:1.0];

然后物体就可以安全释放了..。

这样做解决了问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-06 00:34:18

不要释放对象,你不拥有它,最终你会崩溃的。UIColor可能只是为您缓存这些颜色,而仪器无法知道这一点,因此它将它们报告为泄漏(基本上是创建的东西,您已经没有引用了,但还没有被释放)。

尝试运行一段时间的仪器(使用模拟器),然后发送一个内存警告,看看UIColor是否会清除它的缓存。无论哪种方法,您都无法真正解决发生在核心框架内的漏洞,所以不要尝试。只需确保你并没有以某种方式泄露它们(比如在某个时候保留它们,并且永远不释放它们)。

票数 10
EN

Stack Overflow用户

发布于 2010-10-06 00:34:15

如果这就是你所要做的,那么myColor绝对不会泄漏。如果您在其他任何地方保留该对象而不释放它,则该对象正在泄漏。

永远不要释放一个你不记得保留的对象。Evvarrrrrrrrr.但我怀疑你只是把它藏在某个地方,甚至没有注意到。

票数 2
EN

Stack Overflow用户

发布于 2010-10-06 02:51:05

有时模拟器可以在没有泄漏的情况下报告泄漏,请确保还可以查看设备上是否也有相同的泄漏。

但是由于使用模拟器的速度更快,所以首先尝试在那里找到一些东西。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3868742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档