2017-04-03 38 views
2

これは、私のテキストファイルをエクスポートし、ジレンマをインポートするための第2部の一部です。今、私はコードとエクスポートコードを書いています。パズルの最後の部分は、インポートコードと読み取りコードです。私は添付ファイルを電子メールから取り出し、それをアプリケーションにインポートしたいので、私はそれを読むことができます。iOSアプリケーションでファイルを読み込んで読み込むにはどうすればよいですか?

@IBAction func readButton(_ sender: UIButton) { 
    let filePath = getDocumentsDirectory().appendingPathComponent("matrixFile.txt") 
    do { 
     try displayField.text = String(contentsOfFile: path!, 
             encoding: String.Encoding.utf8) 
    } catch let error as NSError{ 
     displayField.text = String(describing: error) 
    } 
} 

しかし、私はまた、インポート時にfilePathがどのようなものになるのだろうと思っていました。私はexportのためにinfo.plistを調整しましたが、これ以上の変更は必要でしょうか?ここに私の現在の追加があります: enter image description here ありがとうございます。

+0

あなたのアプリには「読み込み」ボタンはありません。ユーザーは、電子メールを表示しながら添付ファイルからアプリを起動することを選択する必要があります。 iOSがアプリを起動し、適切なアプリデリゲートメソッドが呼び出され、ファイルへのURLが与えられます。 – rmaddy

+0

@rmaddyこれは私のアプリ用ではなく、これは私がファイルを読み書きするために作ったテスタープロジェクトから来たものです –

+0

ユーザーがテキストを編集しない場合、QuickLookフレームワークを使ってテキストファイルを表示することをお勧めします。 –

答えて

2

電子メールの添付ファイルを使用してドキュメントを開くには、アプリケーションを[開く]メニューリストに表示する必要があります。

A:あなたがする必要があるrelevant Apple Documentationごとにあなたは、あなたのアプリケーションがiOS版で開い できるドキュメントタイプを登録する必要があります。これを行うには、アプリが開くことができる各ドキュメントタイプの アプリのInfo.plistにドキュメントタイプを追加する必要があります。 さらに、ドキュメントタイプのいずれかがiOSによって認識されない場合、 は、 ドキュメントタイプの統一タイプ識別子(UTI)を提供する必要があります。

私はすでにあなたのスクリーンショットに示されているように、エクスポートタイプUTIを追加しましたが、あなたが定義したUTIを使用してドキュメントタイプを追加するための上記のリンクされたページの指示に従ったと思いますか?そうでない場合は、ドキュメントタイプも追加する必要があります。ドキュメントタイプは、特定のタイプのドキュメントを扱うことができることを識別するドキュメントタイプです。

また、txtは既知の形式なので、おそらくテキストファイルに対してUTIを再度定義する必要はありません。ドキュメントタイプ定義のテキストファイルに既存のUTIを使用することができます。

実際、私はクイックテストアプリを作成して上記をテストしました。アプリケーションに追加しなければならなかったのは、ドキュメントタイプ(私はテキストが既知のタイプなのでUTI定義なし)でした。 Open in ...リストのテストアプリを開きます。ここに私の文書型宣言です: enter image description here

更新:@LeoDabusが言及したよう は、あなたがUIApplicationDelegateapplication(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool方法を経由してファイルを開く、実際に実装する必要があります。私はあなたがこの部分を認識していると思っていましたが、これに追加の助けが必要な場合は、ここで質問してください。

+0

これは彼がやろうとしていることの半分しかありません。また、外部ファイルのオープン(表示)または保存(移動)を実装する必要があります –

+0

@LeoDabus私はそれを認識しますが、その部分を知っているかのように見えました。彼はOpen In ..リスト - 少なくとも、それは私の印象でした。彼がさらなる助けが必要な場合に備えて、私の答えにあなたが言ったことについてのメモを追加します。 – Fahim

+0

@Fahim私はこれに関するいくつかの追加の助けに感謝します。私は主にこのアプリケーションのバックエンド作業を行っており、まだアプリケーションデリゲートでは働いていません。 –

関連する問題