Loading ...

Eseguire comandi esterni in Swift

Eseguire comandi esterni in Swift

Prima o poi doveva capitare di iniziare a combattere anche con Swift; dovendo fare un porogrammino per macOS, quale migliore occasione?

Il primo articolo di questo linguaggio lo dedico a come eseguire comandi esterni.

Mi pare di capire che ci sono vari modi per farlo; ed inoltre ho visto che molte classi sono state rinominate nelle ultime versioni di Swift (ad esempio NSTask in Process).

Noi andremo ad usare proprio Process; ecco un esempio basico:

import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

    @IBOutlet weak var window: NSWindow!


    func applicationDidFinishLaunching(_ aNotification: Notification) {
        // Insert code here to initialize your application
    }

    func applicationWillTerminate(_ aNotification: Notification) {
        // Insert code here to tear down your application
    }

    @IBAction
    func testProc(_ sender: Any) {
        let process = Process()
        process.executableURL = URL(fileURLWithPath:"/bin/ls")
        process.arguments = ["-la"]
        process.terminationHandler = { (process) in
            print("FINTIO!")
        }
        do {
            try process.run()
        } catch {}
    }

}

Io ho collegato la funzione ad un item del menu.

Enjoy!