【发布时间】:2016-04-21 20:22:00
【问题描述】:
我是个十足的菜鸟。在 xcode 中使用这段代码,我得到了我需要的结果。我创建了一个带有多个参数的命令行二进制“菜单栏”。我通常在终端“/bin/menubar getip”、“/bin/menubar/getuser”中运行它。我想根据以下工作代码创建一个函数。
import Cocoa
import Foundation
var task:NSTask = NSTask()
var pipe:NSPipe = NSPipe()
task.launchPath = "/bin/menubar"
task.arguments = ["getip"]
task.standardOutput = pipe
task.launch()
var handle = pipe.fileHandleForReading
var data = handle.readDataToEndOfFile()
var result_s = NSString(data: data, encoding: NSUTF8StringEncoding)
print(result_s)
我想把它转换成一个函数。
func commmand (argument: String) -> String
{
let task:NSTask = NSTask()
let pipe:NSPipe = NSPipe()
task.launchPath = "/bin/menubar"
task.arguments = ["argument"]
task.standardOutput = pipe
task.launch()
let handle = pipe.fileHandleForReading
let data = handle.readDataToEndOfFile()
let result_s = NSString(data: data, encoding: NSUTF8StringEncoding)
return result_s
}
commmand getip
【问题讨论】:
-
Soooo 有什么问题?
-
“我得到了我需要的结果”听起来不错。有什么问题?
-
对不起,我没有说清楚。我正在尝试将其转换为可重用的功能。所以我可以传递不同的参数。
-
将代码放入函数中,并为您想要更改的内容添加参数。
标签: swift cocoa swift-playground nstask nspipe