我在使用 swift 读取文件时遇到问题。我在网上搜索了很多,看是否能找到任何东西,我发现了 3 个不同的,但我无法让它们中的任何一个工作
他们在这里:
import Foundation
//----- 1 ------
var error: NSErrorPointer = nil
let url = NSURL(string: "ISO.csv")
let csvString = String(contentsOfURL:url!, encoding: NSUTF8StringEncoding, error: error);
println("contest")
println(csvString)
//----- 2 ------
func readFile(fileName: String, fileType: String) -> String{
var fileRoot = NSBundle.mainBundle().pathForResource(fileName, ofType: fileType)
var contents = NSString.stringWithContentsOfFile(fileRoot!, encoding: NSUTF8StringEncoding, error: nil)
return contents
}
// example: read file.txt
var contents = readFile("ISO", "csv")
println(contents)
//----- 3 -----
let path = NSBundle.mainBundle().pathForResource("ISO", ofType: "csv")
var data = String.stringWithContentsOfFile(path, encoding: NSUTF8StringEncoding, error: nil)
在数字 1 中:它只返回一个 nil。但它适用于从网站返回数据
数字 2:/ISO/main.swift:26:20: 'String.Type' 没有名为 'stringWithContentsOfFile' 的成员
数字 3 : /ISO/main.swift:38:21: 'stringWithContentsOfFile(_:encoding:error:)' 不可用:使用对象构造 'NSString(contentsOfFile:encoding:error:)'
我不知道该怎么做,希望你们中的一些人知道,提前谢谢
最佳答案
//----- 2 ------
func readFile(fileName: String, fileType: String) -> String{
var fileRoot = NSBundle.mainBundle().pathForResource(fileName, ofType: fileType)
var contents = NSString.stringWithContentsOfFile(fileRoot!, encoding: NSUTF8StringEncoding, error: nil)
return contents
}
// example: read file.txt
var contents = readFile("ISO", "csv")
println(contents)
//----- 3 -----
let path = NSBundle.mainBundle().pathForResource("ISO", ofType: "csv")
var data = String.stringWithContentsOfFile(path, encoding: NSUTF8StringEncoding, error: nil)
这两个都使用了错误的初始化器语法,如错误状态所示。他们也做同样的事情。
修复:
let path = NSBundle.mainBundle().pathForResource("ISO", ofType: "csv")
var data = String(contentsOfFile:path, encoding: NSUTF8StringEncoding, error: nil)
关于xcode - Swift - 读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27301034/