से UIImage मैं एक और अधिक जटिल परियोजना के लिए एक सरल परीक्षण की कोशिश कर रहा हूं लेकिन मुझे परेशान है कि नीचे दिया गया कोड क्यों क्रैश हो रहा है और EXC_BAD_ACCESS त्रुटि दे रहा है?CGImageRef
इसे UIView से कहा जाता है।
- (void)testing {
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"ball.png" ofType:nil];
CGImageRef imageRef = [[[UIImage alloc]initWithContentsOfFile:imagePath]CGImage];
// CGImageRetain(imageRef);
UIImage *newImage = [[UIImage alloc]initWithCGImage:imageRef];
UIImageView *iv = [[UIImageView alloc]initWithImage:newImage];
[self addSubview:iv];
}
मेरा अनुमान है कि CGImageRef बनाए रखा नहीं किया जा रहा है लेकिन CGImageRetain (imageRef) जोड़ने है; कोई फर्क नहीं पड़ता।
मुझे यह भी ध्यान रखना चाहिए कि इस परियोजना में एआरसी चालू है।
संपादित
मैं थोड़ा और अधिक परीक्षण किया और पाया कि यह सीधे एआरसी से संबंधित है है के रूप में मैं ऊपर केवल कोड सहित 2 बुनियादी परियोजनाओं का निर्माण किया। एआरसी के साथ पहला बंद हो गया और यह पूरी तरह से काम किया। एआरसी के साथ अगला चालू हो गया और उसी त्रुटि के साथ बीएएम दुर्घटनाग्रस्त हो गया। दिलचस्प बात यह है कि मुझे एक वास्तविक लॉग त्रुटि मिली है जब पहली बार मैंने दुर्घटना से पहले परियोजना को भाग लिया था।
CGImageRef imageRef = [[[UIImage alloc]initWithContentsOfFile:imagePath]CGImage];
कि लाइन एक UIImage
बनाता है, इसके CGImage
संपत्ति हो जाता है, और फिर UIImage
वस्तु विज्ञप्ति:
Error: ImageIO: ImageProviderCopyImageBlockSetCallback 'ImageProviderCopyImageBlockSetCallback' header is not a CFDictionary...
शानदार, अब मैं देख रहा हूं कि क्या हो रहा है। कम से कम मैं सही रास्ते पर था। धन्यवाद रोब। – EcksMedia