gpt4 book ai didi

ruby - 从 OS X 应用程序运行 ruby​​ 脚本

转载 作者:太空宇宙 更新时间:2023-11-03 16:21:26 35 4
gpt4 key购买 nike

我想编写一个 OS X 应用程序,它可以执行一些用 ruby​​ 编写的非常简单的代码,而且我不希望在 swift 中移植。是否有可能以某种方式将 ruby​​ 脚本包含到 OS X 应用程序中,然后调用该脚本并从中获取数据,并与我的 swift 代码交换信息?例如,我可以在 Ruby 中编写函数“return_random”并从 swift 中调用它以获得来自该函数的结果?

我知道……这听起来很复杂,但它会非常有用!

谢谢

最佳答案

您可以使用 NSUserUnixTask(url: NSURL) 来执行脚本。您可以通过为每个标准输入创建 NSPipe() 并将它们附加到任务来提供标准输入和读取标准输出。

如果您的应用程序是沙箱化的,您只能从 ApplicationScriptsDirectory 执行。如果您没有沙盒化,您应该能够在任何地方执行。

这是一个简单的例子:

let script = try NSUserUnixTask(URL: url)
let inpipe = NSPipe()
let outpipe = NSPipe()
script.standardInput = inpipe.fileHandleForReading
script.standardOutput = outpipe.fileHandleForWriting
script.executeWithArguments(nil, completionHandler: nil)
inpipe.fileHandleForWriting.writeData(inputData)
script.standardInput?.closeFile()
inpipe.fileHandleForWriting.closeFile()
let out = outpipe.fileHandleForReading.readDataToEndOfFile()
script.standardOutput?.closeFile()
outpipe.fileHandleForReading.closeFile()
return String(data: out, encoding: NSUTF8StringEncoding)

关于ruby - 从 OS X 应用程序运行 ruby​​ 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32521172/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com