2015-11-16 4 views
3

Я пишу быстрый XCTest, и мне нужно оценить подпроцесс. Я хочу вызвать терминал, передать путь к applescript на терминал и выполнить его.NSTask не работает в Swift

Я импортировал как UIKit, так и Foundation в быстрый файл теста. Когда я иду, чтобы написать константу, как: let task = NSTask() NSClass не упоминается в NSObject, и в результате я получаю сообщение, что он является

Использование неразрешенной unidentifier NSTask

Если я напишите let pipe = NSPipe(), на который ссылаются и работают. Почему NSTask недоступен после импорта UIkit и Foundation?

+0

NSTask не доступен на прошивке – user3441734

+0

то, что объясняет, что. thanks @ user3441734 – JJacquet

ответ

3

в стремительной 3.0 Apple, изменил NSTask API

Чтобы выполнить ЦМД сейчас:

// Create a process (was NSTask on swift pre 3.0) 
let task = Process() 

// Set the task parameters 
task.launchPath = "/bin/ls" 
task.arguments = ["[email protected]" , filePath] 

// Create a Pipe and make the task 
// put all the output there 
let pipe = Pipe() 
task.standardOutput = pipe 

// Launch the task 
task.launch() 

// Get the data 
let data = pipe.fileHandleForReading.readDataToEndOfFile() 
let output = String(data: data, encoding: String.Encoding.utf8) 
print(output!) 
+0

Процесс() по-прежнему говорит: «использование неразрешенного идентификатора процесса» в swift 3 Xcode 8.1 (с поддержкой импорта) любые предложения? –

+0

протестирован теперь под Xcode Version 8.0 (8A218a) в: 1) приложение OSX: оно работает 2) приложение терминала для какао: оно работает. – ingconti

+0

Действительно, я развиваюсь в iOS, поэтому это не сработает. Моя вина! –

Смежные вопросы