2014-10-14 5 views
9

ऑटोलाउट समस्या को डीबग करने का प्रयास करते समय (एक तालिका कक्ष जो इसकी सामग्री के आकार के अनुसार बढ़ाना चाहिए, कुछ परिस्थितियों में नहीं है), मैं सेट करता हूं"यह NSLayoutConstraint को स्थिर सीमा से अधिक कॉन्फ़िगर किया जा रहा है जो आंतरिक सीमा से अधिक है"

(lldb) p ((CGSize)[cachedCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize]).height 
2014-10-14 11:15:49.492 AppName[72132:10302054] This NSLayoutConstraint is being configured with a constant that exceeds internal limits. A smaller value will be substituted, but this problem should be fixed. Break on void _NSLayoutConstraintNumberExceedsLimit() to debug. This will be logged only once. This may break in the future. 
(CGFloat) $0 = 57 

खैर ठीक है, कि दिलचस्प है: मेरे tableView:heightForRow: विधि की अंतिम पंक्ति पर एक ब्रेकपाइंट, और systemLayoutSizeFittingSize: का मूल्य मैं इस मिल मुद्रित करने के लिए कोशिश कर रहा। लेकिन मैं कोशिश करते हैं और है कि समारोह पर यह क्या कहते हैं और एक ब्रेकपाइंट सेट:

Grab of breakpoint definition on _NSLayoutConstraintNumberExceedsLimit()

... और इस ब्रेकपाइंट हिट नहीं होती है।

  • क्या मैं ब्रेकपॉइंट सही ढंग से सेट कर रहा हूं?
  • किसी भी मामले में, इस पर जाने के लिए मेरी बाधाओं के साथ क्या गलत हो सकता है पर कोई संकेत?

प्रतीक नाम से (Annoyingly, यह कुछ मामलों में, लेकिन दूसरों में नहीं काम करने के लिए लगता है और मैं सेटअप में एक फर्क नहीं देख सकता।)

उत्तर

10

न आना ()। यह थोड़ा स्पष्ट क्या हो रहा है कि अगर आप breakpoint set --name आदेश के साथ इस ब्रेकपाइंट सेट करने के लिए डिबगर कंसोल विंडो का उपयोग करें:

(lldb) br s -n _NSLayoutConstraintNumberExceedsLimit() 
Breakpoint 1: no locations (pending). 
WARNING: Unable to resolve breakpoint to any actual locations. 
(lldb) br s -n _NSLayoutConstraintNumberExceedsLimit 
Breakpoint 2: where = Foundation`_NSLayoutConstraintNumberExceedsLimit, address = 0x00007fff9168e6f5 
(lldb) 

आप अपने Xcode डिबग सत्र में breakpoint list (br l) कमांड का इस्तेमाल किया था, तो आप देखा होगा कि _NSLayoutConstraintNumberExceedsLimit() ब्रेकपॉइंट किसी भी स्थान पर सेट नहीं किया गया था।

+0

ठीक है, अब मुझे 'br l' (धन्यवाद!) के अनुसार ब्रेकपॉइंट सेट मिला है, लेकिन यह तब तक हिट नहीं होता है जब तक कि मैं 'पी (CGSize) को कॉल नहीं करता [cachedCell.contentView systemLayoutSizeFittingSize: UILayoutFittingCompressedSize]' डीबगर में, किस मामले में मैं हिट गिनती देख सकता हूं! –

+1

अंत में समस्या हल हो गई। यदि मुझे मैन्युअल रूप से लेबल पर 'पसंदीदा मैक्सलेआउट विड्थ' सेट करना है, तो ऑटो लेआउट मेरे लिए क्या कर रहा है ?! –

+0

@RobertAtkins, आपने इसे कैसे ठीक किया? – orkenstein

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