我已经养成了这样编写错误处理代码的习惯:
NSError* error = nil;
NSDictionary *attribs = [[NSFileManager defaultManager] removeItemAtPath:fullPath error:&error];
if (error != nil) {
DLogErr(@"Unable to remove file: error %@, %@", error, [error userInfo]);
return;
}
但是查看文档后,似乎我错了。
- (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error
如果发生错误,则在返回时包含描述问题的NSError对象。如果不需要错误信息,请传递NULL。
从技术上讲,nil和NULL之间没有区别,这是否意味着我实际上正在关闭它,并且永远不会收到错误消息(即使在上面的示例中删除失败)? 有更好的编码方法吗?
谢谢。
nil
、NULL
和Nil
是有区别的。nil
用于实例对象,Nil
用于类对象,而NULL
则用于其他任何事物。由于&error
是内存地址而不是对象,因此应使用NULL
。 - Philip007