失败,但不返回错误对象。为什么?
-
13-09-2019 - |
题
我试图理解返回值的含义 [NSData writeToFile:选项:错误:]. 。该方法返回一个 BOOL,根据 Apple 的文档,该值是“如果操作成功则为 YES,否则为 NO”。
很公平,但如果它是“否”,我会假设错误参数将被设置为某个可检索的 NSError* 值。但从我遇到的结果来看,情况并非如此。因此我有点困惑,不知道如何确定导致失败的原因。
也就是说,我有这个代码(或多或少):
NSError* error = nil;
BOOL success = [data writeToFile: filePath error: &error];
if ( error )
NSLog( @"error = %@", [error description] );
success
原来是 NO
在我正在运行的代码中,但是 NSLog
语句永远不会被执行。怎么会?
霍华德
解决方案
这有可能是data
是nil
,在这种情况下返回[data writeToFile:error:]
nil
,但*error
未设置。
其他提示
在将writeToFile方法返回TRUE成功和失败返回FALSE - 这就是要真正地检查什么。
所以,尝试:
if(!success)
作为条件,而不是如果(误差)。
不隶属于 StackOverflow