Swift on Ubuntu:使用未声明的类型' NSFileHandle'

时间:2017-02-15 08:20:59

标签: ubuntu swift3

在Ubuntu上运行swift 3.0.2。

当我运行以下代码时

 import Foundation
 let file: NSFileHandle? = NSFileHandle(forReadingAtPath: "data.txt")

我收到错误

test.swift:274:11:错误:使用未声明的类型' NSFileHandle' 让文件:NSFileHandle? = NSFileHandle(forReadingAtPath:" data.txt")

NSFileHandle位于基金会的API中,但对于Linux上的Foundation库是否适用?

我做错了什么?

此致

1 个答案:

答案 0 :(得分:1)

来自SE-0086 Drop NS Prefix in Swift Foundation

  

作为Swift 3 API Naming的一部分和Swift核心库的引入,我们将从Swift中的关键Foundation类型中删除NS前缀。

NSFileHandle位于该列表中,在Swift 3中称为FileHandle

import Foundation
let file = FileHandle(forReadingAtPath: "data.txt")

这适用于Apple平台和Linux。 Linux实现可以在这里看到: NSFileHandle.swift

有一个讨论[swift-evolution] Pitch: Replacement for FileHandle 关于撤消重命名并在更多中实现FileHandle 类似Swift的方式(例如throw Swift错误而不是 NSException S)。