失败,但不返回任何错误对象。为什么?

时间:2009-08-11 20:46:39

标签: objective-c error-handling nsdata

我正在尝试理解[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语句从未执行过。怎么样?

霍华德

2 个答案:

答案 0 :(得分:14)

data nil可能是[data writeToFile:error:],在这种情况下nil会返回*error,但{{1}}未设置。

答案 1 :(得分:0)

writeToFile方法在成功时返回TRUE,在失败时返回FALSE - 这是您想要实际检查的内容。

所以,试试:

if(!success)

作为你的条件而不是if(错误)。