Xcode 4.3
我已经阅读了关于 NSError** 的 SO 问题,所以我编写了一个简单的测试程序,它使用了 Xcode 4.3 推荐的稍微不同的语法(见__autoreleasing
下文),所以我不能 100% 确定这是否正确,尽管代码似乎运行正常。无论如何,只是一个简单的文件阅读器,如果找不到文件,则会打印错误。
问题
想知道 NSError 初始化、参数传递 using&
和错误条件检查是否正确。此外,在该方法中,我注意到andreadFileAndSplit..
之间存在很大差异,实际上,当没有引发错误条件时,它不起作用。if(!*error)
if(!error)
if(!error)
带有可能错误条件的文件读取方法
-(NSArray*) readFileAndSplitLinesIntoArray:(NSError *__autoreleasing *) error {
NSString* rawFileContents =
[NSString stringWithContentsOfFile:@"props.txt"
encoding:NSUTF8StringEncoding
error:error
NSArray* fileContentsAsArray = nil;
if(!*error)
fileContentsAsArray =
[rawFileContents componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
return fileContentsAsArray;
呼叫者
SimpleFileReader* reader = ...
NSError* fileError = nil;
NSArray* array = [reader readFileAndSplitLinesIntoArray: &fileError];
if(fileError){
NSLog(@"Error was : %@, with code: %li",
[fileError localizedDescription],(long)[fileError code]);
}