SWIFT TableView错误

时间:2015-09-03 05:37:50

标签: ios arrays swift uitableview text-files

class MasterViewController: UITableViewController {

    let firstTable = [String]()
    let secondTable = [String]()

    var path = NSBundle.mainBundle().pathForResource("Chapters", ofType: "txt")
    var data = String(contentsOfFile:path, encoding: NSUTF8StringEncoding, error: nil)
    var content = (data)
    var line: [String] = content.componentsSeparatedByString("\n")

错误:

  

' MasterViewController.Type'没有名为' path'

的成员

@dip的下一个问题>>为什么表打印出一个初始的空字符串?文本打印在第二个单元格中,而不是从0开始

var path: String?
var data: String?
var TableView1 = [String]()

override func viewDidLoad() {
    super.viewDidLoad()

    self.path = NSBundle.mainBundle().pathForResource("textFile", ofType: "txt")
    self.data = String(contentsOfFile:path!, encoding: NSUTF8StringEncoding, error: nil)
    if var content = (data){
        //var line: [String] = content.componentsSeparatedByString("\n")
        var chp: [String] = content.componentsSeparatedByString("#")

        TableView1 += chp
    }...

3 个答案:

答案 0 :(得分:1)

对于计算属性,您必须通过setter方法访问, 例如,使可选的全局变量像

var path:String?

然后让我们说明来自viewDidload 中的设置值

self.path = NSBundle.mainBundle().pathForResource("Chapters", ofType: "txt")

你的错误会消失!希望它能帮到你!

答案 1 :(得分:1)

以下更改也可能有效;

private class var path:String {
    get {
        return NSBundle.mainBundle().pathForResource("Chapters", ofType: "txt")!
    }
}

var data = String(contentsOfFile:path, encoding: NSUTF8StringEncoding, error: nil)

答案 2 :(得分:0)

初始化data实例是错误的方法。而不是在你的类方法中这样做,假设你可以在viewDidLoad方法中这样做:

override func viewDidLoad() {
    super.viewDidLoad()
    var path = NSBundle.mainBundle().pathForResource("Chapters", ofType: "txt")
    var data = String(contentsOfFile:path, encoding: NSUTF8StringEncoding, error: nil)
    var content = (data)
    var line: [String] = content.componentsSeparatedByString("\n")
}