0

XMLを処理する必要がありますが、NSInputStreamを使用すると、多くのことを書き直さなければならないため、コードが壊れます。

dataWithContentsOfFileはファイル全体をメモリに保存しますか、それともgetBytesメソッドに要求されたコンテンツのみを読み取りますか?

NSXMLParserへの入力パラメーターとしてNSDataを使用していますが、これに関するドキュメントはありますか?

NSDataのdataWithContentsOfFileまたはその実装の内部に関するアップルのドキュメントに関するドキュメントはありません。

4

1 に答える 1

0

NSXMALParser に NSData を割り当てる場合、iPhone IOS は仮想メモリの使用方法をよく知っているため、そのオブジェクトのデータ バッファを作成し、すべてのオブジェクトがメモリ (RAM) を占有することを意味します。ファイルからデータ全体を読み取ると、オブジェクト データが占有され、データ サイズが (OS アルゴリズムに応じて) メモリ ページ数を超える場合、オブジェクトは仮想メモリ管理を使用します。データ オブジェクトは、データがどのように割り当てられたかに関係なく、既存のデータをラップすることもできます。オブジェクトには、データ自体に関する情報 (タイプなど) は含まれていません。データの使用方法を決定する責任はクライアントにあります。特に、ビッグ エンディアンとリトル エンディアンのマシン間で分散されている場合、バイト オーダー スワッピングを処理しません。
このリンクをもう一度読むことをお勧めします https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/BinaryData/BinaryData.html#//apple_ref/doc/uid/10000037i iOS に関連しています。しかし、1 つ気になる点があります。IOS には、オブジェクトの所有者のタイプがあります。1 つはユーザーで、もう 1 つは IOS オブジェクトです。NSData を作成する場合、メモリ バッファを割り当て、データ ポインタをこの変数に割り当てることを意味しますが、その時点ではデータ全体がメモリ内に存在します。これは私たちの想定ですが、この期間中、IOS はこのシナリオを処理する方法を知っています。IOS は、仮想メモリ技術を使用してデータ ページを処理します。

于 2012-11-03T18:57:37.613 に答える