NSLayoutConstraint 描述随机不同

NSLayoutConstraint description is randomly different

打印视图的约束,它们显示如下:

<__NSArrayI 0x14020baa0>(
<NSContentSizeLayoutConstraint:0x14026bda0 H:[PinView:0x1401f4e80(93)] Hug:250 CompressionResistance:750>,
<NSContentSizeLayoutConstraint:0x14026d1f0 V:[PinView:0x1401f4e80(269)] Hug:250 CompressionResistance:750>,
<NSLayoutConstraint:0x140266560 V:|-(0)-[UIView:0x1401fad10]   (Names: '|':PinView:0x1401f4e80 )>,
<NSLayoutConstraint:0x140232770 H:|-(0)-[UIView:0x1401fad10]   (Names: '|':PinView:0x1401f4e80 )>,
<NSLayoutConstraint:0x140232800 UIView:0x1401fad10.bottom == PinView:0x1401f4e80.bottom>,
<NSLayoutConstraint:0x14024a6d0 UIView:0x1401fad10.trailing == PinView:0x1401f4e80.trailing>
)

为什么前 4 个显示视觉格式,而只有后 2 个显示常规(更清晰)格式?

description 方法是否根据其创建方式返回不同的内容?

如你所见in the 2012 WWDC session 228:

Now for constraints that can be expressed with a visual format syntax it will show that syntax in the log messages.

所以实际上是"random",系统根据约束本身选择合适的语法。
它也不取决于它的创建方式。

我认为可以向 NSLayoutConstraint 添加一个类别,您可以在其中覆盖 description 方法和 return 所有约束的相同语法。