我的代码有什么问题..我想让它读取像
这样的文本文件的Item1
项目2
项目3
项目4
项目5
并将其解析为一个数组,因此每一行都是这样数组中的一个单独对象。
当您检查控制台时,它会打印(null)
-(void)parseIntoArray{ //parse the files into seprate arrays.
allPools = [[NSMutableArray alloc] initWithContentsOfFile:@"ALL_POOLS_NAMES"];
NSLog(@"%@",allPools);
}
我把txt文件放在我的项目中并将其复制到目的地。
答案 0 :(得分:13)
首先,您是否可以验证文件是否存在于您所查找的位置且可读? 使用
[[NSFileManager defaultManager] isReadableFileAtPath:aPath];
其次,你的文件中有什么。 initWithContentsOfFile:
的行为由aPath 标识的文件中的数组表示必须仅包含属性列表对象(NSString,NSData,NSArray或NSDictionary对象)。
您的文件是否是有效的plist xml文件?
<强> InResponse 强>
您不能使用NSArray构造函数 initWithContentsOfFile:来解析常规文本文件。
相反,您可以将文件内容读入内存并自行解析为数组。对于您的示例,您可以使用
//pull the content from the file into memory
NSData* data = [NSData dataWithContentsOfFile:aPath];
//convert the bytes from the file into a string
NSString* string = [[[NSString alloc] initWithBytes:[data bytes]
length:[data length]
encoding:NSUTF8StringEncoding] autorelease];
//split the string around newline characters to create an array
NSString* delimiter = @"\n";
NSArray* items = [string componentsSeparatedByString:delimiter];