Objective-C 在自定义方法中将 NSError 指针传递给 NSFileManager
Posted
技术标签:
【中文标题】Objective-C 在自定义方法中将 NSError 指针传递给 NSFileManager【英文标题】:Objective-C passing NSError pointer to NSFileManager within custom method 【发布时间】:2012-06-13 15:15:56 【问题描述】:我有一个使用 ARC 并接受 NSError 指针的方法,我将它传递给 NSFileManager
的 contentsOfDirectoryAtPath:error:
方法,如下所示:
+ (NSArray *) getContentsOfCurrentDirectoryWithError: (NSError **)error
// code here
_contentsOfCurrentDirectory = [_fileManager contentsOfDirectoryAtPath: _documentDirectory error: error];
// more code here
我不确定这段代码是否正确,因为我不太习惯使用指针,因为被托管语言破坏了。然而,我最初的反应是这样做:
_contentsOfCurrentDirectory = [_fileManager contentsOfDirectoryAtPath: _documentDirectory error: &error];
Xcode 对我大喊大叫,因为我这样做了。我对这可能如何工作的假设是contentsOfDirectoryAtPath:error:
方法正在请求一个指针,并且由于我在我的getContentsOfCurrentDirectoryWithError:error:
方法中请求一个指针,所以我可以不使用取消引用运算符就传递error
。
我只是想确保我这样做是正确的,以避免以后麻烦,所以我所拥有的有问题吗?
【问题讨论】:
【参考方案1】:方法可以是这样的 NSError **errorMessage in .h 文件:
+ (NSArray *) getContentsOfCurrentDirectory
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *_documentsDirectory = [paths objectAtIndex:0];
NSArray *_contentsOfCurrentDirectory = [[NSFileManager defaultManger] contentsOfDirectoryAtPath: _documentDirectory error: errorMessage];
return contentsOfCurrentDirectory ;
每当发生错误时errorMessage参考都会有错误信息[错误描述]
【讨论】:
好吧,我原本打算让我的自定义方法能够暴露内部方法可能遇到的任何错误。以上是关于Objective-C 在自定义方法中将 NSError 指针传递给 NSFileManager的主要内容,如果未能解决你的问题,请参考以下文章
iOS Objective-C 在自定义框架中显示 PNG 图像
无法在自定义适配器中将 EditText 转换为 TextView
iOS - WKURLSchemeHandler 未在自定义方案上调用
AttributeError:“Tensor”对象在自定义损失函数中没有属性“numpy”(Tensorflow 2.1.0)