我有一个使用ARC并使用NSError指针的方法,然后将其传递给contentsOfDirectoryAtPath:error:
NSFileManager
方法,如下所示:
+ (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
使用解除引用运算符。
我只是想确保我这样做是为了避免以后的麻烦,所以我有什么问题吗?
答案 0 :(得分:0)
方法可以像.h文件中的 NSError ** errorMessage 一样:
+ (NSArray *) getContentsOfCurrentDirectory
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *_documentsDirectory = [paths objectAtIndex:0];
NSArray *_contentsOfCurrentDirectory = [[NSFileManager defaultManger] contentsOfDirectoryAtPath: _documentDirectory error: errorMessage];
return contentsOfCurrentDirectory ;
}
每当出现错误时 errorMessage 引用都会出现错误消息[错误说明]