2016-08-28 53 views
0

我有一個簡單的應用程序,需要閱讀多個文本文件。但是現在爲了訪問這些文件,我在筆記本電腦中給出了這個文件的地址。當我分發應用程序時,在哪裏放置文本文件?

let path = "/Users/alimashreghi/Desktop/glossories/science.txt" 
var text:String = "" 

do{ 

    text = try NSString(contentsOfFile:path, encoding: NSUTF8StringEncoding) as String 

}catch{ 

} 

現在,我很關心我何時想分發應用程序。我應該在哪裏放置文本文件,我應該如何閱讀它們以確保它可以在iPhone中作爲應用程序正常工作?

此外,我不太瞭解發佈swift應用程序。

// 
// ViewController.swift 
// Test 
// 
// Created by Ali Mashreghi on 2016-08-29. 
// Copyright © 2016 Ali Mashreghi. All rights reserved. 
// 

import UIKit 

class ViewController: UIViewController { 

    override func viewDidLoad() { 
    let data = NSData.init(contentsOfFile: "/Users/TestProj/science.txt") //prints Optional(4380) 
    let data = NSData.init(contentsOfFile: "science.txt") //prints nil 

    print(data?.length) 

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

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

}

enter image description here

回答

3

只要把它們在你的應用程序的包,那麼你可以閱讀爲:

NSString *filePath = [[NSBundle mainBundle] pathForResource: "science" ofType:@"txt"]; 
NSData *data = [NSData dataWithContentsOfFile:filePath]; 

或者

if let filepath = Bundle.main.path(forResource: "science", ofType: "txt") 
    { 
     let data = NSData.init(contentsOfFile: filepath) 
     NSLog("\(data)") 
    } 

你可以將它們拖放到Xcode的導航區域,確保它們包含在Xcode構建階段|的包中複製捆綁軟件資源。

+0

該文件在包中,但是當我嘗試獲取長度時,我得到零。 print(「length =」+ String(data?.length))//給我零,我應該如何正確添加到包中,該文件也在項目的目錄中(它不僅僅是一個引用) –

+0

而且當我把整個地址的長度不是零了 –

+0

你是否做過這樣的回答部分:「確保它們包含在Xcode構建階段|複製包資源中的包中。」 ? – Gruntcakes

相關問題