Быстрая утечка памяти AppleScript - PullRequest
0 голосов
/ 11 февраля 2019

Я экспериментирую с приложением Swift Mac, которое запускает AppleScripts и получает возвращаемое значение скрипта.Я получаю информацию из приложения Spotify (название песни, время дорожки и т. Д.), Я запускаю сценарии каждую секунду (используя sleep(1)).Я создаю объект из этих данных и печатаю результаты в отладке.Класс модели деинтилируется (я использовал оператор print в методе deinit. Единственное объяснение состоит в том, что метод, который запускает AppleScript, как-то теряет память:

func shell(arguments: [String]) -> String?
    {
        let task = Process()
        task.launchPath = "/usr/bin/osascript"
        task.arguments = arguments

        let pipe = Pipe()
        task.standardOutput = pipe
        task.launch()

        var data = pipe.fileHandleForReading.readDataToEndOfFile()
        let output = String(data: data, encoding: String.Encoding.utf8)

        return output?.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
    }

Я также получаю ошибку: osascript[2268:70490] AppleEvents: received mach msg which wasn't complex type as expected in getMemoryReference. в области отладки.

Я тестирую и на Mojave, и на High Sierra, также тестировался с архивом - сохраняйте результат везде, объем памяти приложения продолжает увеличиваться, пока ОС не убьет его (после 30-60 минут). Память не освобождается даже после того, как я перестал запускать скрипт. Не могли бы вы помочь мне решить проблему утечки памяти? Любой совет очень ценится.

...