CSV文件解析为Array Objective-C

时间:2013-05-30 22:45:48

标签: objective-c csv nsarray

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

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)

2 个答案:

答案 0 :(得分:2)

我发现您的计划存在两个潜在问题。

  1. 您正在将nil参数传递到error:行中的stringWithContentsOfFile:参数。如果有可能出现问题(显然有问题),你应该在那里通过一个真正的论证,这样你就可以弄清楚出了什么问题。

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

  3. 我只对上面的#2进行了更改,并使用测试文件运行您的程序,它似乎工作正常 - 这意味着您的问题很可能是#1。它无法找到该文件,因为权限问题无法打开它,或者沿着这些行。

答案 1 :(得分:0)

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

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