2016-02-22 8 views
5

मुझे पता है कि यह एक सामान्य सवाल है, लेकिन मुझे आशा है कि जिस व्यक्ति के पास ऐसा अनुभव हो, शायद यह हो सकता है कि शायद क्या हो रहा है।ऑटो लेआउट अक्षम के साथ आईओएस 9 पर ऑटो-लेआउट क्रैश

मुझे हमारे आईपैड-केवल ऐप में केवल आईओएस 9 पर होता है जो एक क्रैश हो रहा है। यह कहता है एनएसआईएननल इन्फॉन्सिस्टेंसी अपवाद

यह पोर्ट्रेट और लैंडस्केप मोड, और कई आईपैड पीढ़ियों (आईपैड 2, आईपैड प्रो, आईपैड 4, ...) दोनों पर होता है।

मेरे पास प्रोजेक्ट में कहीं भी ऑटो लेआउट सक्षम नहीं है, फिर भी यह एक ऑटो लेआउट समस्या की तरह दिखता है।

प्रतिकृति करना बहुत मुश्किल है, इसलिए मैं इसे एक्सकोड पर डीबग करने में सक्षम नहीं हूं, लेकिन मैं क्रैश एनालिटिक्स सेवा "क्रैशलिटिक्स" पर रिपोर्ट देख रहा हूं। यहाँ Crashlytics से स्टैक ट्रेस है:

Auto layout internal error. Cannot find an outgoing row 
head for incoming head <unknown var (bug!) with engine as delegate[...] 

Thread : Fatal Exception: NSInternalInconsistencyException 
0 CoreFoundation     0x23d4568b __exceptionPreprocess 
1 libobjc.A.dylib    0x356c2e17 objc_exception_throw 
2 CoreFoundation     0x23d455d1 -[NSException initWithCoder:] 
3 Foundation      0x24a873b3 -[NSISEngine minimizeConstantInObjectiveRowWithHead:] 
4 Foundation      0x24a86e4d -[NSISEngine optimize] 
5 Foundation      0x24a82a53 -[NSISEngine withBehaviors:performModifications:] 
6 UIKit       0x27e040bb -[UIView(Hierarchy) _postMovedFromSuperview:] 
7 UIKit       0x280fb227 __UIViewWasRemovedFromSuperview 
8 UIKit       0x27e02ddb -[UIView(Hierarchy) removeFromSuperview] 
9 UIKit       0x282e5fa9 -[UIKeyboardPredictionView setPredictionViewState:animate:notify:] 
10 UIKit       0x281e3787 -[UIKeyboardImpl updatePredictionView] 
11 UIKit       0x27f155e3 -[UIKeyboardImpl finishLayoutChangeWithArguments:] 
12 UIKit       0x27e31437 -[UIKeyboardImpl updateLayout] 
13 UIKit       0x27e36077 -[UIKeyboardImpl setDelegate:force:] 
14 UIKit       0x27e2f6e1 -[UIPeripheralHost(UIKitInternal) _reloadInputViewsForResponder:] 
15 UIKit       0x27e2f20d -[UIResponder(UIResponderInputViewAdditions) reloadInputViews] 
16 UIKit       0x27e8d853 -[UIResponder becomeFirstResponder] 
17 UIKit       0x27e8db6d -[UIView(Hierarchy) becomeFirstResponder] 
18 UIKit       0x27f12289 -[UITextField becomeFirstResponder] 
19 UIKit       0x27fbe69f -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) setFirstResponderIfNecessary] 
20 UIKit       0x27fbdc75 -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) oneFingerTap:] 
21 UIKit       0x28334e27 _UIGestureRecognizerSendTargetActions 
22 UIKit       0x27fa2303 _UIGestureRecognizerSendActions 
23 UIKit       0x27e3a7af -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] 
24 UIKit       0x28335f2f ___UIGestureRecognizerUpdate_block_invoke809 
25 UIKit       0x27dfc287 _UIGestureRecognizerRemoveObjectsFromArrayAndApplyBlocks 
26 UIKit       0x27df9e77 _UIGestureRecognizerUpdate 
27 UIKit       0x27e386f9 -[UIWindow _sendGesturesForEvent:] 
28 UIKit       0x27e37e43 -[UIWindow sendEvent:] 
29 UIKit       0x27e097e5 -[UIApplication sendEvent:] 
30 UIKit       0x27e07fdf _UIApplicationHandleEventQueue 
31 CoreFoundation     0x23d08c3f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ 
32 CoreFoundation     0x23d0882d __CFRunLoopDoSources0 
33 CoreFoundation     0x23d06b9b __CFRunLoopRun 
34 CoreFoundation     0x23c5a249 CFRunLoopRunSpecific 
35 CoreFoundation     0x23c5a035 CFRunLoopRunInMode 
36 GraphicsServices    0x2cd24ad1 GSEventRunModal 
37 UIKit       0x27e6f899 UIApplicationMain 
38 Mr Appliance     0xcda7b main (main.m:16) 
39 libdyld.dylib     0x35e0e873 start 

समस्या मैं नहीं जानता कि जहां कोड में यह हो रहा है। स्टैक ट्रेस दिखाता नहीं है कि क्रैश होने वाले कोड में कहां है। यह केवल main.m लाइन 16 है जो return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); है।

+0

और आप इसके बारे में क्या करना चाहते हैं _us_? आपके पास कोड है; हम नहीं करते हमें नहीं पता कि इस समय क्या हो रहा है; तुम करो। – matt

+0

@matt मुझे नहीं पता कि यह कहां हो रहा है।स्टैक ट्रेस कहां नहीं बताता है। यह केवल "main.m लाइन 16" कहता है। – Carl

+0

और आप _us_ को जानने की उम्मीद करते हैं? _You_ वह है जिसके पास कोड है और जानता है कि ऐप क्या करता है, हम नहीं! आपके पास वही जानकारी है जो हमारे पास है (क्रैश रिपोर्ट) प्लस कोड। यह स्पष्ट है कि किस तरह की चीज हुई है; उपयोगकर्ता ने कुछ टैप किया है, एक टेक्स्ट फ़ील्ड पहला प्रतिसादकर्ता बन रहा है, और कीबोर्ड दिखाई दे रहा है। यहां कोई और संभवतः कह सकता है? – matt

उत्तर

1

main.m में वह पंक्ति है जहां आपका प्रोग्राम चलना शुरू होता है, जहां त्रुटि होती है। अन्य सभी वस्तुओं के बाद अपवाद को सूची के शीर्ष पर # 1 पर फेंक दिया गया है। समस्या कहीं के बीच में निहित है।

कुछ पर्यवेक्षण से कुछ दृश्य हटा दिए जाने के बाद एक अपवाद है, और यह एनएसआईएसईजेनिन त्रुटियों को दर्शाता है कि शायद कुछ एक्सआईबी या स्टोरीबोर्ड के लिए ऑटोलाउट चालू है - या अन्य आईओएस नए लेआउट की व्यवस्था को संभालने के लिए आंतरिक रूप से ऑटोलाउट का उपयोग कर रहा है ।

This answer में लगभग समान स्टैक ट्रेस & अंक है, जो पहले रेस्पॉन्डर परिवर्तनों को संभालने और कीबोर्ड को खारिज करने के लिए गलत इशारा विधियों का उपयोग करने के साथ होता है। यदि आप कुछ ऐसा कर रहे हैं (कुछ दृश्य को खारिज कर रहे हैं, UITableView संपादित कर रहे हैं?) हो सकता है कि यह उस प्रतिनिधि को इंगित करने वाली गलत विधि के साथ हो जो मौजूद नहीं है?

https://stackoverflow.com/questions/33800918/uitextfield-becomefirstresponder-crashes-the-ios-app-randomly

+0

मेरे पास उस दृश्य में (या पूरे ऐप में) कोई कस्टम इशारा नहीं है। आपके द्वारा दिए गए लिंक में एक समान स्टैक ट्रेस है, सिवाय इसके कि वह ग्लोइंग टेक्स्टक्ल्ड का उपयोग कर रहा है जबकि मेरे पास नियमित UITextField है। – Carl

0

स्टैकट्रेस ऑनस्क्रीन कीबोर्ड के बारे में एक मुद्दा इंगित करता है। एक लेआउट परिवर्तन होता है जो एक गैर-विद्यमान प्रतिनिधि के साथ समाप्त होता है। ऐसा लगता है कि आपका कोड कुंजीपटल से संबंधित एक लेआउटchange प्रत्यक्ष या अप्रत्यक्ष ट्रिगर करता है। बात यह है कि स्क्रीन पर एक कीबोर्ड तब भी grated नहीं है जब आपका ऐप इनपुट पुन: प्राप्त करता है।

आईपैड प्रो और स्मार्ट कीबोर्ड के लिए आपके पास एक त्वरित प्रकार की बार हो सकती है और इसे भी छुपाया जा सकता है। काफी कुछ ऐप्स में बाहरी कीबोर्ड के साथ समस्याएं हैं।

ब्लूटूथ कीबोर्ड को अपने परीक्षण डिवाइस में से किसी एक को जोड़ने का प्रयास करें। इसे xcode से कनेक्ट करें, exeptions पर ब्रेकपॉइंट सेट करें और अपने टेक्स्टफील्ड को आजमाएं। मान लीजिए कि आप जो खोज रहे हैं वह आपको मिलेगा।

+0

चूंकि यह एक कस्टम बी 2 बी ऐप है, हम जानते हैं कि उपयोगकर्ता बाहरी कीबोर्ड का उपयोग नहीं करते हैं, कम से कम उनमें से 26 नहीं, इसलिए यह बाहरी कीबोर्ड समस्या नहीं हो सकता है। लेकिन यह एक ऑनस्क्रीन कीबोर्ड समस्या की तरह दिखता है। – Carl

+0

क्या आप स्क्रीन पर लेआउट के संबंध में कोई धारणा बना रहे हैं? या उन उपयोगकर्ताओं के पास उनके डिवाइस पर एक तृतीय पक्ष कीबोर्ड एक्सटेंशन है? –

+0

मैंने क्रैशलिटिक्स रिपोर्ट में यह जानकारी (चाहे उपयोगकर्ता तीसरे पक्ष के कीबोर्ड का उपयोग कर रहा हो या नहीं), और ध्यान दिया कि इनमें से कोई भी उपयोगकर्ता किसी तृतीय-पक्ष कीबोर्ड का उपयोग नहीं करता है। – Carl

0

हो सकता है कि आपने इसे शुरू करते समय किसी भी व्यू कंट्रोलर या xib नाम को गलत वर्तनी हो या हो सकता है कि आपने बदल दिया हो, फ़ाइल का नाम, या इसे स्थानांतरित कर दिया हो, भौतिक फ़ोल्डर में और इसे xcode से निकालना भूल जाएं।

+0

यह तब नहीं हो सकता है जब यह क्रैश केवल आईओएस 9 पर होता है, जिसका अर्थ है कि आईओएस 7 और 8 के उपयोगकर्ताओं को इस क्रैश का अनुभव नहीं होता है। – Carl

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