1

複数のテキスト ファイルを読み取る必要がある単純なアプリケーションがあります。しかし今、ファイルにアクセスするために、ラップトップでファイルのアドレスを指定しています。

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.
}

}

ここに画像の説明を入力

4

2 に答える 2

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 のビルド フェーズ | のバンドルに含まれていることを確認します。バンドル リソースをコピーします。

于 2016-08-28T21:33:48.163 に答える
0

スイフト 5 バージョン

func getDataFromBundleFile(_ fileName: String, ofType: String) -> Data? {
    guard let filePath = Bundle.main.path(forResource: fileName, ofType: ofType) else {
        return nil
    }
    return try? Data(contentsOf: URL(fileURLWithPath: filePath))
 }
于 2020-09-29T23:26:28.600 に答える