NSFileHandle是文件描述符的包装器,它是解决方案。您可以使用文件句柄对象来访问与文件,套接字,管道和设备关联的数据。对于文件,您可以在文件中读取,写入和查找。
DispatchQueue.global(qos: .background).async {
let input = FileHandle.standardInput
var aStr : String!
while true {
//Read first 4 bytes to get message length details(As per NativeMessagingAPI protocol)
let lengthDetails = input.readData(ofLength:4)
let length = lengthDetails.withUnsafeBytes { (ptr: UnsafePointer<Int32>) -> Int32 in
return ptr.pointee
}
let data = input.readData(ofLength:Int(length))//input.availableData
if (data.count > 0) {
var aStr = String(data:data, encoding:String.Encoding.utf8)
if (aStr != nil) {
DispatchQueue.main.async {
//Handle data logic here
}
}
}
}
}
我认为“任何人都可以请建议在(语言)STDIO做的解决方案”是“没有研究”问题的金标准。 – Xan
@Xan请为我提供参考链接,如果有的话。我已经使用Mac命令行工具完成了这一工作,但是使用OSX应用程序时,遇到了一些线程问题。 – itZme
我不得不承认我没有,因为我从未碰过Obj-C或Swift。但是,如果您已经尝试过并且无法正常工作,那么您绝对应该提及,或者更好 - 显示您尝试做的和研究的内容。 – Xan