2013-01-12 1 views
14

मेरे ऐप में निम्न लॉग के साथ कई क्रैश अक्सर रिपोर्ट किए जाते हैं, लेकिन कई टेस्ट डिवाइस और आईओएस संस्करणों के साथ भी मैं पुन: पेश नहीं कर पा रहा हूं यह। तो एक्सकोड पर कारण खोजने का कोई तरीका नहीं है। क्योंकि ट्रेस में कोई कदम नहीं है, जो मेरे कोड की ओर जाता है, मैं इसकी उत्पत्ति को खोजने के किसी भी तरीके से कल्पना नहीं कर सकता। ऐप स्वयं बहुत जटिल है और निश्चित रूप से कई स्क्रॉल दृश्य, एम्बेडेड भी उपयोग किए जाते हैं।क्रैश ऑन के कारण खोजने में असमर्थ - [UIScrollView (UIScrollViewInternal) _scrollViewAnimationEnded: समाप्त:]

क्या किसी को यह पता है कि कहां दिखना शुरू करना है? या किसी के पास पहले भी ऐसी ही समस्या थी?

मैं किसी भी मदद के लिए बहुत आभारी हूं!

सादर, फ्लोरियन

OS Version:  iPhone OS 6.0.1 (10A523) 
Report Version: 104 

Exception Type: SIGSEGV 
Exception Codes: SEGV_ACCERR at 0xd1d28fbc 
Crashed Thread: 0 

Thread 0 Crashed: 
0 libobjc.A.dylib      0x392e65b0 objc_msgSend + 16 
1 UIKit        0x35a839f7 -[UIScrollView(UIScrollViewInternal) _scrollViewAnimationEnded:finished:] + 135 
2 UIKit        0x35a838e9 -[UIAnimator stopAnimation:] + 469 
3 UIKit        0x35b1e257 -[UIAnimator(Static) _advanceAnimationsOfType:withTimestamp:] + 295 
4 UIKit        0x35a83381 -[UIAnimator(Static) _LCDHeartbeatCallback:] + 53 
5 QuartzCore       0x323d3071 CA::Display::DisplayLink::dispatch(unsigned long long, unsigned long long) + 161 
6 QuartzCore       0x323d2fc9 CA::Display::IOMFBDisplayLink::callback(__IOMobileFramebuffer*, unsigned long long, unsigned long long, unsigned long long, void*) + 65 
7 IOMobileFramebuffer     0x340befd7 IOMobileFramebufferVsyncNotifyFunc + 155 
8 IOKit        0x35ee8449 IODispatchCalloutFromCFMessage + 193 
9 CoreFoundation      0x339605db __CFMachPortPerform + 119 
10 CoreFoundation      0x3396b173 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 35 
11 CoreFoundation      0x3396b117 __CFRunLoopDoSource1 + 139 
12 CoreFoundation      0x33969f99 __CFRunLoopRun + 1385 
13 CoreFoundation      0x338dcebd CFRunLoopRunSpecific + 357 
14 CoreFoundation      0x338dcd49 CFRunLoopRunInMode + 105 
15 GraphicsServices     0x33f222eb GSEventRunModal + 75 
16 UIKit        0x3596a2f9 UIApplicationMain + 1121 
17         0x00005233 main (main.m:14) 

उत्तर

2

SIGSEGV संकेत एक प्रक्रिया के लिए भेज दिया जाता है, जब यह गलत आभासी स्मृति संदर्भ, या विभाजन गलती करता है। (Wikipedia देखें)

तो आप किसी ऑब्जेक्ट तक पहुंच रहे हैं जो संभवतः जारी किया गया है। चूंकि यह एक एनीमेशन के दौरान है, हो सकता है कि आपने एनीमेशन समाप्त होने के बाद या ऐसा कुछ करने के बाद एक चयनकर्ता को बुलाया जाए? ऐसा होगा कि मैं देख रहा था।

2

आप इस सूत्र पर एक नज़र लेने के लिए चाहते हो सकता है: Is there a way to cancel an animated UITableView/UIScrollView setContentOffset:animated:?

यही चर्चा चलता है कि यह एक प्रतिनिधि है कि scrollview एनीमेशन संदेश समाप्त हो गया भेजता से पहले dealloc'd है हो सकता है।

17

मुझे एक ही दुर्घटना थी। ऐसा इसलिए हुआ क्योंकि हम [नियंत्रक सेटकंटेंट ऑफसेट: न्यूपीटी एनिमेटेड: हाँ] के साथ एक नियंत्रक एनिमेट कर रहे थे, और हमने नियंत्रक पर scrollViewDidScroll प्रतिनिधि विधि लागू की। स्क्रीन पर एक बटन पर क्लिक करने से आप दूसरे नियंत्रक को अग्रिम कर सकते हैं, इसलिए यदि कोई उपयोगकर्ता एनीमेशन प्रगति पर था, तो बटन क्लिक करने में कामयाब रहा, तो हम मूल पोस्टर के क्रैश को दबा देंगे। समाधान बस प्रतिनिधि को डीलोक में शून्य करने के लिए सेट करना है।

+0

डेलोक में नील सेट करना बहुत अच्छा काम करता है! धन्यवाद – mikemike396

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