在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库是否适用?
我做错了什么?
此致
答案 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)。