Swift NSAlert () аргумент печати строки с пробелами - PullRequest
0 голосов
/ 14 июня 2019

Как распечатать приведенный ниже массив для отображения полной строки?

alert.informativeText = CommandLine.arguments[4]

Это печатает нормально, если это одно слово. Аргумент Тест

Test

Однако, если аргумент Это тест . Он по-прежнему печатает только первое слово:

Test

Полный код:

CommandLine.arguments[1]{
        func dialogOKCancel(title: String) -> Bool
        {
            let alert = NSAlert()
            alert.informativeText = CommandLine.arguments[4]
            alert.alertStyle = NSAlert.Style.warning
            alert.addButton(withTitle: "Dismiss")
            return alert.runModal() == NSApplication.ModalResponse.alertFirstButtonReturn
        }
        _ = dialogOKCancel(title: "")

Ответы [ 2 ]

0 голосов
/ 14 июня 2019

Символ пробела является разделителем аргумента в командной строке.

Вы должны заключить в кавычки строку

/path/to/executable 'This is A Test'

или экранировать

/path/to/executable This\ is\ A\ Test

пробелыв строке при вызове исполняемого файла.

0 голосов
/ 14 июня 2019

Аргументы командной строки всегда разделяются пробелами.Хотя «Это тест» может выглядеть как один аргумент, это четыре аргумента - «Это», «Есть», «А» и «Тест».

Кажется, что вы пытаетесь сделатьпечать всех аргументов.В этом случае вы должны удалить первый элемент CommandLine.arguments (это сама команда), а затем join строки:

alert.informativeText = CommandLine.arguments.dropFirst().joined(separator: " ")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...