5

[NSData writeToFile:options:error:]によって返される値の意味を理解しようとしています。このメソッドは BOOL を返します。Apple のドキュメントによると、これは「操作が成功した場合は YES、それ以外の場合は NO」です。

当然ですが、NO の場合は、エラー パラメーターが取得可能な NSError* 値に設定されると想定していたでしょう。しかし、私が遭遇している結果では、そうではありません。したがって、私はやや混乱しており、失敗の原因を特定する方法がわかりません。

要するに、私はこのコードを持っています(多かれ少なかれ):

NSError* error = nil;
BOOL success = [data writeToFile: filePath error: &error];
if ( error )
    NSLog( @"error = %@", [error description] );

successNO私が実行しているコードにあることが判明しましたが、NSLogステートメントは実行されません。どうして?

ハワード

4

2 に答える 2

14

である可能性がdataあります。nilその場合[data writeToFile:error:]は が返されますがnil*error設定されていません。

于 2009-08-11T21:26:15.423 に答える
0

writeToFile メソッドは、成功すると TRUE を返し、失敗すると FALSE を返します。実際に確認したいのはこれです。

だから、試してください:

if(!success)

if( error ) の代わりに条件として。

于 2009-08-11T21:02:20.993 に答える