अधिकांश समय, मेरा छवि पिकर पूरी तरह से काम करता है (आईओएस 4.2.1)। हालांकि, अगर मैं लगभग 300 फ़ोटो के अपने कैमरे रोल के माध्यम से लगभग 4-6 बार बहुत तेज़ी से ऊपर और नीचे स्क्रॉल करता हूं, तो मुझे एक क्रैश मिलता है। यह एक ही आईफोन 3 जी पर "फोटो" ऐप के साथ कभी नहीं होता है। साथ ही, मैं देख रहा हूं कि स्टॉक "फोटो" ऐप मेरे छवि पिकर की तुलना में अधिक आसानी से स्क्रॉल करता है।UIImagePickerController तेजी से स्क्रॉलिंग पर क्रैश होता है, फ़ोटो ऐप से धीमा
क्या किसी और ने इस व्यवहार को देखा है? मुझे दिलचस्पी होगी अगर अन्य लोग अपने ऐप्स में इसका प्रयास कर सकते हैं और देख सकते हैं कि वे दुर्घटनाग्रस्त हैं या नहीं। मुझे नहीं लगता कि यह मेरे आईफोन पर अन्य ऑब्जेक्ट्स को मैग्जिंग मेमोरी से संबंधित है क्योंकि यह एक साधारण ऐप है, और ऐप शुरू करने के बाद यह ठीक होता है। यह मेरे क्रैश लॉग के आधार पर अन्य रिलीज ऑब्जेक्ट्स या अन्य ऑब्जेक्ट्स को ओवरडिलेज़लोड में भेजे गए संदेशों से संबंधित प्रतीत नहीं होता है और तथ्य यह है कि सिम्युलेटर अनुरूपित स्मृति चेतावनियों को अच्छी प्रतिक्रिया देता है। मुझे लगता है कि यह UIImagePickerController के आंतरिक कार्यान्वयन में एक बग हो सकती है ...
यह मैं कैसे पिकर शुरू है। मैंने यह कई तरीकों से किया है (मेरे शीर्षलेख में UIImagePickerController के लिए एक बरकरार संपत्ति सेट करना और डेलोक पर रिलीज़ करना)। यह सबसे अच्छा तरीका है प्रतीत हो रहा है (कम से कम दुर्घटनाओं):
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
picker.allowsEditing = YES;
[self presentModalViewController:picker animated:YES];
[picker release];
यह वह जगह है दुर्घटनाग्रस्त हो धागा (मैं विभिन्न प्रकार के अपवाद मिल):
Exception Type: SIGSEGV
Exception Codes: SEGV_ACCERR at 0xfffffffff4faafa4
Crashed Thread: 8
...
Thread 8 Crashed:
0 CoreFoundation 0x000494ea -[__NSArrayM replaceObjectAtIndex:withObject:] + 98
1 PhotoLibrary 0x00008e0f -[PLImageTable _segmentAtIndex:] + 527
2 PhotoLibrary 0x00008a21 -[PLImageTable _mappedImageDataAtIndex:] + 221
3 PhotoLibrary 0x0000893f -[PLImageTable dataForEntryAtIndex:] + 15
4 PhotoLibrary 0x000087e7 PLThumbnailManagerImageDataAtIndex + 35
5 PhotoLibrary 0x00008413 -[PLThumbnailManager _dataForPhoto:format:width:height:bytesPerRow:dataWidth:dataHeight:imageDataOffset:imageDataFormat:preheat:] + 299
6 PhotoLibrary 0x000b6c13 __-[PLThumbnailManager preheatImageDataForImages:withFormat:]_block_invoke_1 + 159
7 libSystem.B.dylib 0x000d6680 _dispatch_call_block_and_release + 20
8 libSystem.B.dylib 0x000d6ba0 _dispatch_worker_thread2 + 128
9 libSystem.B.dylib 0x0007b251 _pthread_wqthread + 265
यह कोशिश की लेकिन iPad या iPhone 4 पर पुन: पेश नहीं कर सका, 4.2.1 चल रहा है। क्या यह किसी विशेष फोटो रोल पर निर्भर करता है? – mvds
अच्छी तरह से SEGV_ACCERR संकेत देता है कि आपके पास पहुंचने की अनुमति नहीं है। क्या आपने पिकर के बिना कोशिश की है .allowsEditing = हाँ; ? – Erle
मैंने अपने आईफोन 3 जी पर http://bit.ly/beeRq और मेरे आईपॉड टच 4 वें जीन (अलग-अलग फोटो) से पिकर डेमो के साथ समस्या को दोबारा उत्पन्न किया, इसलिए मुझे नहीं लगता कि यह मेरा कोड जरूरी है या फोटो रोल है। .. मैंने अभी भी picker.allowsEditing = NO और एक ही समस्या का प्रयास किया। आपको वास्तव में तस्वीरों के शीर्ष तक जितनी जल्दी हो सके पागल की तरह पिकर को स्क्रॉल करना होगा और इसे क्रैश करने के लिए कई बार वापस लेना होगा। –