1

嗨,我有一个 csv 文件,我想在一个数组上解析那里的信息,以便我可以在地图上使用它。这是我从解析部分得到的:

NSString *filepath = [[NSBundle mainBundle] pathForResource:@"Geolocalizadas" ofType:@"csv"];
NSString *content =  [NSString stringWithContentsOfFile:filepath  encoding:NSUTF8StringEncoding error:nil];
NSLog(@"array: %@", content);
NSArray *arrayfarm = [content componentsSeparatedByString:@"\n"];
for (NSString *item in arrayfarm) {
    NSArray *itemArray = [item componentsSeparatedByString:@","];
    // log first item
    NSLog(@"%@",[itemArray objectAtIndex:0]);
}

我在内容和数组上使用 nslog 并且总是得到 (null)

4

2 回答 2

2

我发现您的程序存在两个潜在问题。

  1. 您正在将nil参数传递给行中的error:参数stringWithContentsOfFile:。如果有可能出现问题(显然有),你应该在那里传递一个真实的参数,这样你就可以找出问题所在。

  2. @"\r"用于分隔文件中的字符串。这在 Mac 上很奇怪(我猜你正在使用它,因为这个问题是关于 Objective-C 程序的),尽管我猜可能。您可能希望这样@"\n"。或者@"\r\n",我猜,如果它是 DOS 格式的文件。

我只是对上面的#2 进行了更改,并使用测试文件运行了你的程序,它似乎工作正常——这意味着你的问题很可能与#1 有关。它找不到文件,由于权限问题而无法打开它,或者类似的东西。

于 2013-05-30T22:56:15.643 回答
0

您必须将文件的完整路径传递给NSString stringWithContentsOfFile:encoding:error:,而不仅仅是文件名。

这个 CSV 文件在哪里?它在应用程序包中吗?文档文件夹?根据其位置创建完整路径。

于 2013-05-30T23:04:03.717 回答