5

我试图理解[NSData writeToFile:options:error:]返回的值的含义。该方法返回一个 BOOL,根据 Apple 的文档,“如果操作成功,则为 YES,否则为 NO”。

很公平,但如果它不是,我会假设错误参数将被设置为一些可检索的 NSError* 值。然而,在我遇到的结果中,情况并非如此。因此,我有些困惑,不知道如何确定导致失败的原因。

也就是说,我有这个代码(或多或少):

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

success原来是NO在我正在运行的代码中,但该NSLog语句从未执行。怎么会?

霍华德

4

2 回答 2

14

有可能datanil,在这种情况下[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 回答