无法通过Swift函数传递参数

时间:2020-03-31 16:23:33

标签: swift function arguments parameter-passing

尝试在swift文件中运行macOS命令时出现此问题。我在使用Swift将参数传递给函数时遇到一些问题。当我在函数定义之外的函数date中运行这些行时,一切正常。我在Xcode中看不到任何错误。作为Swift新手,我们不胜感激!

import Foundation
import Cocoa

//Command arguments
let dateLocation = "/bin/date"
let format = "+DATE: %Y-%m-%d%nTIME: %H:%M:%S"
let command = Process()

//Command function with arguments
func date(args: String) -> String {
    command.executableURL = URL(fileURLWithPath: dateLocation)
    command.arguments = [args]
    try command.run()
}

//Run function
date(args: format)

1 个答案:

答案 0 :(得分:0)

首先,您的函数被声明为返回字符串,但不返回任何内容,其次,您正在调用一个函数,该函数可能引发错误,您可以使用try来正确处理该错误,但是您需要处理任何一个可能的错误或将其从您的函数中抛出。在这里,我通过在声明中添加throws选择了后面的示例

func date(args: String) throws {
    command.executableURL = URL(fileURLWithPath: dateLocation)
    command.arguments = [args]
    try command.run()
}

现在您可以调用函数并捕获如下所示的任何错误

do {
    try date(args: format)
} catch {
    print(error)
}

输出:

日期:2020-03-31
时间:18:50:25

相关问题