2013-02-23 3 views
13

я вижу следующий вывод в консолиКак читать выходные данные журнала NSAutoresizingMaskLayoutConstraint?

"<NSAutoresizingMaskLayoutConstraint:0x100510500 h=--& v=&-- H:|-(0)-[NSView] 
    (Names: NSView:0x1016ab760, '|':NSClipView:0x1016a26b0)> 
    (Actual Distance - pixels):0" 

Обычно я понимаю, как читать журнал сообщение для ограничений. Но autoresizingMask ограничения всегда путают меня. Как следующие символы в выходном файле журнала соответствуют маске автомасштабирования?

h=--& v=&-- H:|-(0)-[NSView]

Я наблюдал несколько WWDC 2012 видео, которые не вполне объясняющие чтение авто-изменения размера маски ограничения макета.

+8

Возможный дубликат [При отладке автозапуска в том, что означает строки маскировки авторезистирования, такие как h = - & v = - & -?] (http://stackoverflow.com/questions/14290100/when-debugging-autolayout-what-is-the-meaning-of-the-autoresizing-mask-strings-s) – jrturton

+3

См. мой ответьте на связанный вопрос. – jrturton

ответ

1

jrturton описывает первую часть отладочный вывод в своем ответе (см комментарии)

ч = - & v = & -

Вторая часть одинакова для все autolayout ограничения:

Н: | - (0) - [NSView]

Это просто подробная информация о том, как маска превратилась в ограничение. «H» означает горизонтальный, «|» означает контейнер, в котором находится ваш просмотр (в данном случае NSClipView), - (0) - означает, что он ограничен 0 пикселями слева от вашего представления (в данном случае общим NSView).

Таким образом, сдерживание было добавлено, связав левый край вида непосредственно с его надзором. (Так как правый край не ограничен, он налетает на ветру, точно так же, как говорит авторезистирующая маска.)

+0

Также важно отметить, что метод 'description' объекта NSLayoutConstraint отражает способ его построения. Таким образом, даже если вы создадите два семантически похожих ограничения, они будут выглядеть по-разному в выходе журнала, когда они будут построены по-разному. – toto