2016-03-23 12 views
0

let data: NSData = NSFileManager.defaultManager().contentsAtPath(path)!を使用してドキュメントディレクトリから大きなビデオファイル(700MB以上)をメモリに読み込もうとしていますが、アプリケーションがクラッシュします。より小さなファイルは正常に読み込まれます。大きなファイルを読み込むためのより良い方法はありますか?ありがとう。スウィフト:大きなビデオファイル(700MB以上)をメモリにロード

+1

なぜ大きなファイルを一度にメモリにロードしようとしていますか?あなたはそのデータで何をするつもりですか? – rmaddy

+0

http://stackoverflow.com/questions/31181322/upload-large-video-via-nsurlsession-causes-memory-pressure-crashを試してみて、それがDUPだ場合は、この質問を削除します。 – BaseZen

+0

BaseZenに感謝します。私はそれをチェックアウトします。 マディ、それはdata.subdataWithRange(範囲)を使用して、ファイルIチャンクをロードした後とのDropboxにアップロードします。 – Chris

答えて

1

ファイルに応じて、NSData.init(contentsOfURL:options:)とオプション.DataReadingMappedIfSafeを使用して、ファイルの処理内容に応じて動作します。

これはファイルをメモリにマップします(可能な場合)。つまり、ファイルの内容はbytesプロパティを使用してアクセスするときにのみページ単位で読み込まれます。

0

rmaddyさんからのコメントありがとうございました。 NSFileHandleは私が必要だったものです。ありがとう。

関連する問題