我有一行代碼:哪裏是內存泄漏
CGFloat *components = CGColorGetComponents([color CGColor]);
和分析儀是說,有泄漏這裏。 我嘗試免費(組件),但當我這樣做時,應用程序崩潰。 這裏真的有泄漏,因爲我沒有分配任何東西。我知道CGColorGetComponents返回一個3 CGFloat的數組,但是當我嘗試釋放它時它崩潰了。
任何幫助表示讚賞。
我有一行代碼:哪裏是內存泄漏
CGFloat *components = CGColorGetComponents([color CGColor]);
和分析儀是說,有泄漏這裏。 我嘗試免費(組件),但當我這樣做時,應用程序崩潰。 這裏真的有泄漏,因爲我沒有分配任何東西。我知道CGColorGetComponents返回一個3 CGFloat的數組,但是當我嘗試釋放它時它崩潰了。
任何幫助表示讚賞。
請參閱SO #792119。
聲明變量不會創建數組。實際上,CGColorGetComponents也沒有。無論創建CGColor對象創建數組並將其存儲在對象內部, CGColorGetComponents讓你有指向存儲的指針。
總之,不要釋放你的指針。
但是,您可以將其設置爲NULL。
也許你應該通過color.CGColor作爲參數? 看看這個主題:What does CGColorGetComponents() return?
const CGFloat * CGColorGetComponents( CGColorRef color ); 它實際上是它自3個CGFloat的 – 2011-06-02 19:31:55
顏色組成的數組.CGColor只是[color CGColor]的語法糖,並被編譯器轉換爲後者。 – 2011-06-02 21:25:48
您是否正在對設備或模擬器上的應用程序進行泄漏分析?我在模擬器上有分析儀誤報泄漏。 – highlycaffeinated 2011-06-02 19:29:44
運行分析儀對設備 – 2011-06-02 19:31:40
靜態分析儀警告您泄漏?還是你看到泄漏儀器泄漏? – 2011-06-02 19:56:27