2012-03-18 243 views
5

我在我的代碼中崩潰了,並且在傳遞2 CGColorRefs時,我一直追溯到一行崩潰。這裏是對象:CGColorRef導致崩潰

CGColorRef startColor = [[UIColor colorWithWhite:0.92 alpha:1.0]CGColor]; 
CGColorRef endColor = [[UIColor colorWithWhite:0.94 alpha:1.0]CGColor]; 

NSLog(@"start: %@ end: %@", startColor, endColor); 

NSLog返回一個崩潰。他們怎麼了?

編輯 - 在它的崩潰:

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 
    CGFloat locations[] = { 0.0, 1.0 }; 
NSArray *colors = [NSArray arrayWithObjects:(__bridge_transfer id)startColor, (__bridge_transfer id)endColor, nil]; 
+1

拋出了什麼異常?這對我來說運行良好 – 2012-03-18 22:50:10

+1

請提供例外細節,包括錯誤行本身 - 不僅僅是你傳遞的參數。 – GarlicFries 2012-03-18 22:53:19

+0

編輯與崩潰的地方,如果我不把NSLog放在那裏。 – Andrew 2012-03-18 22:58:33

回答

13

ARC。弧。弧。 UIColor-> CGCOlor是ARC的大陷阱之一...

見深潛這裏:

http://weblog.bignerdranch.com/?p=296

而且我寫了對ARC一些通用的最佳實踐(包括您的問題)在這裏:

http://amattn.com/2011/12/07/arc_best_practices.html

+1

我知道這是現在幾個月,但非常感謝。我花了最後4個小時試圖圍繞什麼事情發生。 – pdriegen 2012-05-09 15:31:34

+0

沒有問題!我總是喜歡聽到我寫的東西可以幫助人們。 – amattn 2012-05-09 20:25:21

+0

我有類似的問題,但它沒有在設備上崩潰,它只是不工作。我正在嘗試使用類別裁剪圖像。模擬器的罰款和設備顯示完整的形象。使用ARC。這個問題可能是相關的嗎? – Daniel 2012-07-27 19:37:30