2015-09-03 74 views
1
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") 

錯誤:SWIFT的TableView錯誤

'MasterViewController.Type' does not have a member named '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 
    }... 

回答

1

對於計算性能,你必須通過setter方法來訪問, 例如使可選的全局變量一樣

var path:String? 

,然後讓說,裏面viewDidLoad中從設定值一樣

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

ÿ我們的錯誤將消失!希望它能幫助你!

+0

讓我們說我在tableview中使用它。這將允許我從文本文件中調用一行文本嗎? – ScarletEnvy

+0

我提供的答案是'MasterViewController.Type'沒有名爲'path'的成員錯誤,我想它應該在原始問題的上下文中工作! – dip

+0

它爲此表示謝意。 但現在它在第二個單元格中打印文本而不是第一個。任何想法爲什麼? – ScarletEnvy

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") 
} 
1

以下更改也可能工作;

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

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