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

hka*_*atz 5 error-handling objective-c 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] );
Run Code Online (Sandbox Code Playgroud)

success结果是NO在我正在运行的代码中,但该NSLog语句永远不会执行.怎么会?

霍华德

Bar*_*ark 14

这可能datanil,在这种情况下[data writeToFile:error:]返回nil,但未*error设置.

  • 这正是它的本质.谢谢.事先你可以向nil对象发送消息,我从来没有被咬过; 最后:我现在认为自己是一个真正的Objective-C程序员!:-) (3认同)