Я протестировал некоторый код на игровой площадке, и он работает так, как я ожидал.
Я создал чрезвычайно базовый c (одна функция, одна кнопка, одно текстовое поле) проект для тестирования кода и не работает - фактически зависает (пляжный мяч).
Что могло вызвать это? И игровая площадка, и проект импортируют Cocoa и Foundation.
Код ниже.
Кажется, что на этой строке зависает:
let data = pipe.fileHandleForReading.readDataToEndOfFile()
Вот код как написано на детской площадке (и скопировано в проект):
import Cocoa
import Foundation
// *** Getting exiftool version number
func exiftoolVersion() -> String {
let task = Process()
let pipe = Pipe()
task.standardOutput = pipe
task.arguments = ["-ver"]
task.executableURL = URL(fileURLWithPath: "/usr/local/bin/exiftool")
do {
try task.run()
task.waitUntilExit()
}
catch {
}
let data = pipe.fileHandleForReading.readDataToEndOfFile()
var output = String(data: data, encoding: .utf8)!
output = output.filter { !$0.isWhitespace }
return output
}