在Swift中导入和读取文本文件

时间:2015-11-11 16:46:24

标签: swift text import

我尝试了这里发布的所有不同方法,并在每个方法上遇到了各种错误: https://codereview.stackexchange.com/questions/100773/load-text-file-into-an-array-in-swift (这些是最新的吗?)

最近,我尝试过:

    func linesFromResourceForced(fileName: String) -> [String] {

    let path = NSBundle.mainBundle().pathForResource(fileName, ofType: nil)!
    let content = try! String(contentsOfFile: path, encoding: NSUTF8StringEncoding)
    return content.componentsSeparatedByString("\n")
}

let lines = linesFromResourceForced("file.txt")
print (lines)

并且遇到了这些错误: “let lines =” - >无法将'String'类型的值转换为预期的参数类型'ViewController' print(lines) - >预期声明

我做错了什么? 我还要感谢有关导入和阅读文本的最简单方法的任何其他建议。谢谢!

2 个答案:

答案 0 :(得分:0)

假设您要在iOS应用中加载文本文件中的行。

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        let lines = linesFromResourceForced("file.txt")
        print (lines)
    }

    func linesFromResourceForced(fileName: String) -> [String] {

        let path = NSBundle.mainBundle().pathForResource(fileName, ofType: nil)!
        let content = try! String(contentsOfFile: path, encoding: NSUTF8StringEncoding)
        return content.componentsSeparatedByString("\n")
    }
}

您需要在类中声明该函数,并在另一个函数的上下文中调用它。因此,当您的视图控制器加载viewDidLoad时,它将调用linesFromResourceForced来加载您的数组行并在该上下文中打印它们。

答案 1 :(得分:0)

已针对Swift 4+更新

            let path = Bundle.main.path(forResource: "myfile.txt", ofType: nil)!
            let myStringText = try String(contentsOfFile: path, encoding: String.Encoding.utf8)