2010-12-14 7 views
5

नहीं बना सकता है मुझे CGBitmapContext बनाने में कोई समस्या है।आईफोन CGBitmapContext

CGContextRef bitmapContext = CGBitmapContextCreate(nil, imageSize.width, imageSize.height, 8, imageSize.width * 4, CGColorSpaceCreateDeviceRGB(), kCGImageAlphaNoneSkipFirst) 

जब मैं अपना आवेदन सामान्य रूप से चलाता हूं तो यह काम करता है। लेकिन जब मैं संदर्भ के रूप में (शून्य) लॉग होता है (कि मेरे परीक्षण प्रदर्शन करेंगे किसी चल रहे एप्लिकेशन) मेरे 'टेस्ट आवेदन' में इसे चलाने और मैं निम्नलिखित त्रुटियाँ मिलती है:

<Error>: CGContextSetFillColorWithColor: invalid context 0x0 
<Error>: CGContextFillRects: invalid context 0x0 
<Error>: CGContextDrawImage: invalid context 0x0 
<Error>: CGContextDrawImage: invalid context 0x0 
<Error>: CGBitmapContextCreateImage: invalid context 0x0 

मेरा आवेदन दुर्घटना नहीं है। लेकिन जाहिर है कि कुछ गड़बड़ है। (मुझे पता है कि उन विधियों को शून्य संदर्भ के साथ बुलाकर त्रुटियां बनाई गई हैं)।

उत्तर

7

यह त्रुटि अक्सर तब दिखाई देती है जब आप जिस बिटमैप को बनाने का प्रयास कर रहे हैं उसका आकार CGSizeZero है। ImageSize के वास्तविक मूल्य की जांच करें।

इसके अलावा, आप उस समारोह में गुजरने वाले CGColorSpaceRef को रिसाव करते हैं।

0

क्या आप CGBitmapContextCreate वापसी मान को गैर-शून्य होने की जांच करते हैं? यदि संदर्भ बनाने के लिए डिवाइस पर पर्याप्त स्मृति उपलब्ध नहीं है तो आपको शून्य मूल्य मिलेगा।

ऐप में आप कितनी मेमोरी का उपयोग कर रहे हैं और आप किस आकार के बिटमैप के लिए पूछ रहे हैं?