从文本文件中读取 – 目标C

我试图熟悉目标C,我目前的目标是读取文本文件中的项目列表,并将它们存储在NSString数组中。

目前这是我所拥有的:

NSString *filepath = [[NSBundle mainBundle] pathForResource:@"myList" ofType:@"txt"]; NSData* data = [NSData dataWithContentsOfFile:filepath]; NSString* string = [[NSString alloc] initWithBytes:[data bytes] length:[data length] encoding:NSUTF8StringEncoding]; NSString* delimiter = @"\n"; listArray = [string componentsSeparatedByString:delimiter]; 

我不知道这是否重要,但myList.txt是在我的支持文件。

目前,我的名单上只有一个项目。 但是,我无法listArray 1个项目存储到我的listArray

我相信这是一个愚蠢的,我失踪了,我只是新的客观C.

编辑:我很抱歉没有提到这一点。 我没有收到任何types的错误。 我的数组只是null。

因为我不能说出你的问题在哪里,所以我会提出一些可以解决你的问题的简化方法。 从这些信息我不知道,如果你正在阅读或没有得到正确的文件内容。

 NSString *filepath = [[NSBundle mainBundle] pathForResource:@"myList" ofType:@"txt"]; NSError *error; NSString *fileContents = [NSString stringWithContentsOfFile:filepath encoding:NSUTF8StringEncoding error:&error]; if (error) NSLog(@"Error reading file: %@", error.localizedDescription); // maybe for debugging... NSLog(@"contents: %@", fileContents); NSArray *listArray = [fileContents componentsSeparatedByString:@"\n"]; NSLog(@"items = %d", [listArray count]); 

如果该文件的内容如下所示:

 [{"Title":"20","Cost":"20","Desc":""},{"Title":"10","Cost":"10.00","Desc":""},{"Title":"5","Cost":"5.00","Desc":""}] 

尝试这个

 -(id)readFromDocumentDBFolderPath:(NSString *)fileName { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *appFile = [documentsDirectory stringByAppendingPathComponent:fileName]; NSFileManager *fileManager=[NSFileManager defaultManager]; if ([fileManager fileExistsAtPath:appFile]) { NSError *error= NULL; NSData* data = [NSData dataWithContentsOfFile:appFile]; id resultData = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil]; if (error == NULL) { return resultData; } } return NULL; }