内存泄漏在哪里

时间:2011-06-02 19:26:16

标签: objective-c memory-management memory-leaks

我有一行代码:

CGFloat *components = CGColorGetComponents([color CGColor]);

并且分析仪说这里有泄漏。 我试过免费(组件),但当我这样做时,应用程序崩溃了。 因为我没有分配任何东西,所以真的有泄漏。我知道CGColorGetComponents会返回一个包含3个CGFloat的数组,但是当我尝试释放它们时会崩溃。

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

请参阅SO #792119

  

声明变量不会创建数组。事实上,CGColorGetComponents也没有。无论创建什么CGColor对象都创建了数组并将其存储在对象中; CGColorGetComponents允许您拥有指向该存储的指针。

简而言之,不要释放指针。

但是,您可以将其设置为NULL。

答案 1 :(得分:0)

也许你应该将color.CGColor作为参数传递? 看一下这个主题:What does CGColorGetComponents() return?