iphone - UIColor泄漏......需要释放物体吗?

Spa*_*Dog 5 iphone

我的应用程序上有很多这样的行

UIColor *myColor = [UIColor colorWithRed:corR green:corG blue:corB alpha:1.0];
Run Code Online (Sandbox Code Playgroud)

仪器说这些线路正在泄漏.因为这不是正式的,据我所知,一个alloc操作(不是吗?)我没有看到需要释放对象,但是由于乐器在抱怨,我添加了几行

[myColor release]
Run Code Online (Sandbox Code Playgroud)

使用变量后,取悦野兽.

这样做会有问题吗,比如崩溃什么的?

显然这样做是解决问题,但我不习惯发布一个没有分配的对象.

你怎么看?

谢谢.


编辑

我想这是一个xcode问题或框架泄漏.为了证明我用替换线

UIColor *myColor = [[UIColor alloc] initWithRed:corR green:corG blue:corB alpha:1.0];
Run Code Online (Sandbox Code Playgroud)

然后可以安全地释放对象......

这样做,解决了问题.

Jas*_*oco 9

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

尝试运行仪器一段时间(使用模拟器),然后发送内存警告,看看UIColor是否会清除其缓存.无论哪种方式,都没有什么可以真正解决核心框架内发生的泄漏,所以不要尝试.只是确保你实际上并没有以某种方式泄漏它们(比如在某些时候保留它们并且从不释放它们).