0

アプリ andbox 内の Documents ディレクトリ内のディレクトリ ツリーから多数のファイルを読み込もうとしています。それらのほとんどは、私が読んだxmlファイルです:

NSData *data = [NSData dataWithContentsOfFile:packagefile. 
RXMLElement *rxml = [RXMLElement elementFromXMLData:data];

1つを除いてすべてOKです。しかし、1つが読み取れず、エラーコード256が表示されます。不良ファイルについては、次を試すこともできます。

NSData *data = [NSData dataWithContentsOfFile:packagefile options:0 error:&err];

しかし、同じエラー コードが返されます。(したがって、私の問題はファイルの実際のxmlコンテンツには関係ないと思います)。

サンドボックスをクリアし、すべてのファイルをプログラムでアプリにコピーしても違いはありません。

ここで何が間違っている可能性がありますか? 他に何ができますか?

4

1 に答える 1

0

この問題の解決策を見つけました (「不可解なエラー コード 256」)。この解決策が、この問題に遭遇した他の開発者に役立つことを願っています。

ファイル ハンドルが不足していました。

私のアプリには、アクティビティをファイルに記録するログ機能もありました(Log4Jに少し似ています)。これは、ログに記録された各ステートメントを取得しました。「NSFileHandle」、「seekToEndOfFile」、「writeData」を使用してファイルを開きました。

ログ記録手順の終了時にARCがファイルを破棄して閉じることに誤って依存していました。明らかに ARC はファイルを閉じ、最終的にシステムはファイル ハンドルを使い果たします。

解決策は、Java や C で行うように「closeFile」を呼び出すだけです。

于 2012-11-14T10:50:42.597 に答える