2011-12-12 5 views
18

मैं इस त्रुटि हो रही है और क्या उस के साथ क्या करना है न:मॉलोक त्रुटि त्रुटि क्षेत्र के साथ विफल "क्षेत्र आवंटित नहीं कर सकता" 12. कोई विचार यह कैसे हल करें?

AppName(3786,0xa0810540) malloc: *** mmap(size=16777216) failed (error code=12) 
*** error: can't allocate region 
*** set a breakpoint in malloc_error_break to debug 

तो मैं उस लाइन त्रुटि तब होती है कि करने के लिए एक ब्रेकपाइंट सेट, मैं नहीं जानता कि मैं के लिए विशेष रूप से खोज करना है। उपकरणों में मैंने आवंटन की जांच की है और मूल्य आवंटन के 14,5 जीबी तक बढ़ रहा है।

क्या कोई मुझे सहायता दे सकता है?
brush51

संपादित करें 1:
अधिक जानकारियां:
- मैं सिम्युलेटर में यह कोशिश कर रहा हूँ, iOS डिवाइस पर नहीं।
- सभी आउटपुट की बात है (मुझे यह त्रुटि अधिक बार मिल रही है)।

NSManagedObjectContext *context = [self managedObjectContext]; 
NSFetchRequest *fetchREntitySetsCards = [[[NSFetchRequest alloc] init] autorelease]; 
//NSFetchRequest *fetchREntityRelCardsAnswersNotes = [[[NSFetchRequest alloc] init] autorelease]; 

NSEntityDescription *entitySetsCards = [NSEntityDescription entityForName:@"EntitySetsCards" inManagedObjectContext:context]; 
//NSEntityDescription *entityRelCardsAnswersNotes = [NSEntityDescription entityForName:@"EntityRelCardsAnswersNotes" inManagedObjectContext:context]; 
setEntity:entityCard]; 
[fetchREntitySetsCards setEntity:entitySetsCards]; 
//[fetchREntityRelCardsAnswersNotes setEntity:entityRelCardsAnswersNotes]; 

NSArray *fetchedObjSetsCards = [context executeFetchRequest:fetchREntitySetsCards error:&error]; 
//The error is here---> 
//NSArray *fetchedObjRelCardsAnswersNotes = [context executeFetchRequest:fetchREntityRelCardsAnswersNotes error:&error]; 


//Badges für TabBarItem Inbox setzen 
setsCount = [context countForFetchRequest:fetchREntityUserSet error: &error]; 
cardsCount = [context countForFetchRequest:fetchREntityCard error: &error]; 
+1

"क्षेत्र आवंटित नहीं किया जा सकता" का अर्थ है कि कोई स्मृति स्थान शेष नहीं है! स्मृति प्रबंधन में देखने और अप्रयुक्त संसाधनों को जारी करने के लिए समय हो सकता है। – sean

+4

आईओएस, 14.5 जीबी आवंटन? क्या मुझसे कोई चूक हो रही है? – buddhabrot

+0

कोई मजाक नहीं। आईफोन 4 पर रैम क्या है? क्या यह 1 जीबी है? –

उत्तर

7

Googling समझने के लिए अपनी स्मृति के साथ चल रहा है उपकरणों के प्रयोग पर काफी कुछ ट्यूटोरियल का पता चलता है: - इस लाइन पर त्रुटि होती है

कैसे मेमोरी लीक डिबग करने के लिए: (ट्यूटोरियल)
http://www.raywenderlich.com/2696/how-to-debug-memory-leaks-with-xcode-and-instruments-tutorial

और एक और:
फिन डिंग Obj सी स्मृति लीक (वीडियो)
http://www.youtube.com/watch?v=R449qEuexNs&feature=related

* कई similar questions stackoverflow आप से लाभ हो सकता पर हैं।

10

अजीब लगता है, लेकिन जब मेरा मुख्य थ्रेड ओवरलोड हो गया था तो मेरा वही व्यवहार था।

मेमोरी उपयोग पर्याप्त इष्टतम था: उपकरणों कोई लीक से पता चलता और जीने स्मृति 2Mb बारे में था, कोई स्मृति चेतावनी जबकि एक डिवाइस पर चल रहा है, सब बड़े पैमाने पर आवंटन autorelease पूल आदि

अंदर किया गया था लेकिन बहुत बड़ा प्रक्रिया नहीं थी मुख्य थ्रेड पर डीबी (कोर डेटा का उपयोग करके) को डेटा संग्रहीत करने के लिए। बस इस कोड को

dispatch_async(dispatch_get_global_queue 
    (DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 
    BOOL result = NO; 
    result = [[DataManager sharedInstance] storeGuestsToDB]; 
    dispatch_async(dispatch_get_main_queue(), ^{ 
    //finalization 
    } 
} 

मेरी समस्या को ठीक करने के लिए संग्रह प्रक्रिया को ले जा रहा है।

+0

मुझे यकीन नहीं है कि मैं आपको सही ढंग से समझता हूं ... आपको इसे मुख्य.एम पर नहीं रखना चाहिए, लेकिन निश्चित रूप से आप अपने आवेदन में कुछ भी उपयोग करने का प्रयास कर सकते हैं। डेटामैनेजर को मेरी कॉल के बजाय बस उस गतिविधि को ओवरलोड करें जिसे आप अधिभारित करना चाहते हैं। – Tamara

+0

आपके उत्तर के लिए धन्यवाद। यह वास्तव में मेरी समस्या थी। मैं एक JSON फ़ाइल (~ 90 एमबी) डाउनलोड और संग्रहीत कर रहा था .. लेनदेन को दूसरे धागे में ले जाने के साथ मैंने समस्या से छुटकारा पा लिया। – Prine

+0

यह मेरे लिए काम नहीं कर रहा है ... और मैंने जांच की, यह स्मृति रिसाव नहीं है। मैं 'CGImageDestinationAddImage' का उपयोग कर एक जीआईएफ निर्यात कर रहा हूं – ninjaneer

0

मुझे दृश्य नियंत्रक के viewWillLayoutSubviews में रिकर्सिव कॉल के कारण यह समस्या थी। मैं एक संग्रह दृश्य के लेआउट को अमान्य कर रहा था जिससे बार-बार विचारों को बिछाने का अंतहीन चक्र होता है।

संबंधित मुद्दे