在这里,我还有另一个菜鸟问题:我试图用Swift编写一个非常简单的程序,并在尝试使用变量从程序内部运行shell命令时陷入困境。
一个简单的例子:写作system("say hello")
。
但是以下代码不起作用:
var whatToSay = "hello world"
system("say \(whatToSay)")
构建程序时出现的错误是: Could not find member 'convertFromStringInterpolatingSegment'
有什么帮助吗?
您需要进行强制转换才能获得CString
:
var whatToSay = "hello world"
var nsCommand : NSString = "say \(whatToSay)"
var command : CString? = nsCommand.cStringUsingEncoding(NSUTF8StringEncoding)
system(command!)
编辑:
如果经常使用,则可以将扩展名用于String
:
extension String {
func toCString() -> CString? {
let nsSelf : NSString = self
return nsSelf.cStringUsingEncoding(NSUTF8StringEncoding)
}
}
var whatToSay = "hello world"
system("say \(whatToSay)".toCString()!)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句