2016-08-28 3 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のアプリとして正しく動作させるためにはどうすればよいですか?

さらに、迅速なアプリの配信についてはあまりよく分かりません。

// 
// 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

ファイルはバンドルに含まれていますが、長さを取得しようとするとnilになります。 //私にnilを与えます。バンドルに正しく追加するには、ファイルもプロジェクトのディレクトリにあります(これは単なる参照ではありません) –

+0

いつ長さがゼロではない完全なアドレスを入力してください –

+0

「Xcodeのビルドフェーズ|バンドルリソースのコピー」にあるバンドルに含まれていることを確認してください。 ? – Gruntcakes

関連する問題