我正在尝试理解[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
语句从未执行过。怎么样?
霍华德
答案 0 :(得分:14)
data
nil
可能是[data writeToFile:error:]
,在这种情况下nil
会返回*error
,但{{1}}未设置。
答案 1 :(得分:0)
writeToFile方法在成功时返回TRUE,在失败时返回FALSE - 这是您想要实际检查的内容。
所以,试试:
if(!success)
作为你的条件而不是if(错误)。