为什么我使用 Visual Format 时会收到 SIGABRT 错误?

Why am i getting a SIGABRT error from using Visual Format?

我正在使用一本关于如何在 swift3 中制作真实应用程序的书。我最近在使用 Visual Format 时遇到错误。它把我的行隔开,因为我有显示行号,而我放置的代码行附近没有行号。然后当我按下 运行 它给了我一个 SIGABRT 错误。为什么以及如何解决这个问题。它没有提到书中的任何错误。如果您想知道这是什么书,那就是:Paul Hudson "Hacking with Swift"。请帮忙!

它给我一个错误 Unterminated String literal

这是我的代码:

view.addConstraints(
    NSLayoutConstraint.constraints(
        withVisualFormat:"V:|
            [label1(labelHeight@999)]-
            [label2(label1)]-
            [label3(label1)]-
            [label4(label1)]
            [label5(label1)]->=10-|",
        options: [],
        metrics: nil,
        views: viewsDictionary
    )
)

您尚未指定 metrics 词典,但您正试图从中访问 labelHeight

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse constraint format: 
Encountered metric with name "labelHeight", but value was not specified in metrics or views dictionaries 
V:|[label1(labelHeight@999)]-[label2(label1)]-[label3(label1)]-[label4(label1)][label5(label1)]->=10-| 
                      ^'

编辑:根据 rmaddy 的建议,修复方法如下:

let metrics = [
    "labelHeight": <#labelHeight#>,
]
view.addConstraints(NSLayoutConstraint.constraints(
    withVisualFormat:"V:|[label1(labelHeight@999)]-[label2(label1)]-[label3(label1)]-[label4(label1)][label5(label1)]->=10-|",
    options: [],
    metrics: metrics,
    views: viewsDictionary
))

备注:
1) 示例修复被分成多行只是为了便于阅读。
2) <#labelHeight#>复制到Xcode.

时会被翻译成占位符