1

を使用してファイルを書き込もうとしています

writeToFile:atomically:YES

しかし、私はすべてのファイルで成功するわけではありません。(4つの解析されたXMLドキュメントから作成された)大きな配列を書き込もうとすると、ファイルは書き込まれません(1つの解析されたXMLのみを含む配列を書き込もうとすると成功します)。そして、私が使用しているとき、それも機能します

writeToFile:atomically:NO

この種の行動の理由は何でしょうか?使用時のファイルサイズに制限はあります writeToFile:atomically:YESか?

4

1 に答える 1

3

唯一のサイズ制限は、デバイスで使用可能なスペースの量です。ただし、writeToFile:atomically:NSArrayで機能するのは、すべてのオブジェクトが、それがいくつ下のレベルであっても、プロパティリストオブジェクトである場合のみです。プロパティリストオブジェクトNSArrayは、、、、、、およびNSDictionaryです。また、キーがすべての場合、はプロパティリストオブジェクトのみです。NSStringNSNumberNSDataNSDictionaryNSString

NSArray ただし、はに準拠してNSCodingいるため、カスタムクラスオブジェクトもに準拠しているNSCoding場合は、配列をにエンコードして、NSDataを介してファイルに書き込むことができますNSKeyedArchiver

または、データ構造をクリーンアップして、プロパティリストオブジェクトのみを使用するようにします。

于 2012-12-20T01:16:37.437 に答える