【发布时间】:2011-06-10 18:45:12
【问题描述】:
我养成了这样编写错误处理代码的习惯:
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
标签: objective-c null nserror