Я хотел бы получить текст из буфера обмена. Я написал код, который, кажется, работает, но иногда он дает сбой, например, когда я пытаюсь использовать приложение, когда я вхожу в систему как гость. Может быть, потому что картон не мог содержать текст.
Это код, который я использую, я хотел бы обернуть последнюю строку в условный оператор, но, похоже, уже слишком поздно это делать, потому что в этот момент я получаю сообщение об ошибке.
func pasteOverAction() {
// create a pasteboard instance
let pasteboard = NSPasteboard.general()
// create an array for put pasteboard content
var clipboardItems: [String] = []
// iterate elements in pasteboard
for element in pasteboard.pasteboardItems! {
// if it's text
if let str = element.string(forType: "public.utf8-plain-text") {
clipboardItems.append(str) // put in the array
}
}
// put the first element of the array in a constant
// sometimes crashes here
let firstStringOfClipboard = clipboardItems[0]
}
.pasteboardItems!
. Вы не должны принудительно разворачивать необязательный. Вместо этого обработайте возможность того, что это свойство равно нулю. - person Eric Aya   schedule 04.04.2017"public.plain-text"
- person Leo Dabus   schedule 04.04.2017