2014-10-14 13 views
9

Bir Otomatik Yanıt sorununu hata ayıklamaya çalışırken (içeriğinin boyutuna göre büyümesi gereken bir tablo hücresi, bazı durumlarda değil),"Bu NSLayoutConstraint, iç sınırları aşan bir sabitle yapılandırılıyor"

(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 

Eh tamam, bu ilginç: my tableView:heightForRow: yöntemin son satırında bir kesme noktası, ve bana böyle systemLayoutSizeFittingSize: değerini yazdırmaya çalışırken. Ama denemek ve bu işlevi bir kesme noktası bunu söylediklerini yapmak ve ayarlayın:

Grab of breakpoint definition on _NSLayoutConstraintNumberExceedsLimit()

... ve bu kesme isabet almaz.

  • Kesme noktasını doğru ayarlıyor muyum?
  • Her halükarda, kısıtlarımın neye yol açabileceğine dair ipuçları var mı?

(Annoyingly, bazı durumlarda değil diğerlerinde iş gibi görünüyor ve ben kurulumunda bir fark göremez.)

cevap

10

atlarsanız () sembol adından.

Eğer Xcode ayıklama oturumunda breakpoint list ( br l) komutunu kullanmış olsaydık
(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) 

, sen görürdü: Eğer breakpoint set --name komutuyla bu kesme noktası ayarlamak için ayıklayıcı konsol penceresini kullanın eğer ne olup bittiğini biraz daha açık _NSLayoutConstraintNumberExceedsLimit() kesme noktası herhangi bir konumda ayarlanmadı.

+0

Şimdi "br l" ye göre bir kesme noktası ayarladım (teşekkür ederim!) Ama yine de vurulmuyor — p (CGSize) [cachedCell.contentView systemLayoutSizeFittingSize: UILayoutFittingCompressedSize] dedikçe hata ayıklayıcısında, bu durumda isabet sayısını görebiliyorum! –

+1

Sonunda problemi çözdüm. Etikette el ile 'preferMaxLayoutWidth' ayarlamam gerekirse, Auto Layout benim için ne yapıyor ?! –

+0

@RobertAtkins, bunu nasıl düzelttiniz? – orkenstein

İlgili konular