2016-07-19 1 views
0

自分のアプリケーションのデータを保存するテキストファイルがあります。システムからのパスを使用してファイルを呼び出すとクラッシュしますか?

システムパス(/Users/username/Desktop/ProjectFile/data.txt)を使用すると、アプリケーションを.ipaファイルにコンパイルするとエラーが発生する可能性がありますか?

+1

iPAの作成中にファイルが存在する場合はコンパイルされますが、ファイルを削除してコンパイルするとエラーが発生します。 –

答えて

0

実際のiOSデバイス上でテストしたときにクラッシュします。

システムパスを使用する代わりに、以下のコードを使用する方が効果的です。それは実際のデバイスでのクラッシュを防ぎます。

 let path = NSBundle.mainBundle().pathForResource("file", ofType: "txt") 
     let fileMgr = NSFileManager.defaultManager() 
     var array: [String] = [] 

     if fileMgr.fileExistsAtPath(path!) { 
      do { 
       let text = try! String(contentsOfFile: path!, encoding: NSASCIIStringEncoding) 
       array = text.componentsSeparatedByString("|#|") 
      } 
     } 
0

プロジェクト内のファイルを開き、次の図に示すようにターゲットメンバーシップを確認します。ターゲットメンバーシップアイコンが対応するターゲットに対してチェックされている場合、コンパイル時には問題は発生しません(ipaの作成)。しかし、ターゲットビルドでターゲットメンバーシップがチェックされていない場合、問題が発生します。問題のようなパス形式のシステムを使用して

enter image description here

+0

これはチェックされていますが、実際のテストデバイスでコンパイルしてテストしようとすると、「このようなファイルはありません」というエラーが表示されます。シミュレータ上でエラーなく実行されます。 –

関連する問題