2012-03-18 11 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); 

एनएसएलओजी एक क्रैश देता है। उनके साथ क्या मामला है?

संपादित करें - जहां यह दुर्घटनाग्रस्त है:

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

क्या अपवाद फेंक दिया गया है? यह मेरे लिए ठीक है –

+1

कृपया गलती रेखा सहित अपवाद विवरण प्रदान करें - केवल आपके द्वारा पारित पैरामीटर नहीं। – GarlicFries

+0

जहां यह क्रैश हो रहा है, वहां संपादित किया गया है, अगर मैं वहां एनएसएलओजी नहीं डालता हूं। – Andrew

उत्तर

13

एआरसी। एआरसी। एआरसी। यहाँ

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

और मैं एआरसी के लिए कुछ सामान्य सर्वोत्तम प्रथाओं (आपकी समस्या सहित) ऊपर लिखा है:: UIColor-> CGCOlor एआरसी की बड़ी gotchas में से एक है ...

यहाँ एक गहरा गोता देखें

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

+1

मुझे पता है कि यह अब कुछ महीने पुराना है, लेकिन इस लिए आपका बहुत - बहुत धन्यवाद। मैंने पिछले 4 घंटों में अपने सिर को लपेटने की कोशिश की कि बिल्ली क्या चल रहा था। – pdriegen

+0

कोई जांच नहीं! मुझे हमेशा यह सुनना अच्छा लगता है कि मैं जो सामान लिखता हूं वह लोगों की मदद करता है। – amattn

+0

मुझे एक ही समस्या है, हालांकि यह डिवाइस पर क्रैश नहीं हो रहा है, यह अभी काम नहीं कर रहा है। मैं एक श्रेणी का उपयोग कर एक छवि फसल करने की कोशिश कर रहा हूँ। सिम्युलेटर का जुर्माना और डिवाइस पूरी छवि दिखाता है। एआरसी का उपयोग करना क्या यह समस्या संबंधित हो सकती है? – Daniel