对于下面的代码,我可以读取字符串中的所有数据,并成功获取绘图数据。导入csv数据(SDK iphone)
NSMutableArray *contentArray = [NSMutableArray array];
NSString *filePath = @"995,995,995,995,995,995,995,995,1000,997,995,994,992,993,992,989,988,987,990,993,989";
NSArray *myText = [filePath componentsSeparatedByString:@","];
NSInteger idx;
for (idx = 0; idx < myText.count; idx++) {
NSString *data =[myText objectAtIndex:idx];
NSLog(@"%@", data);
id x = [NSNumber numberWithFloat:0+idx*0.002777778];
id y = [NSDecimalNumber decimalNumberWithString:data];
[contentArray addObject:
[NSMutableDictionary dictionaryWithObjectsAndKeys:x, @"x", y, @"y", nil]];
}
self.dataForPlot = contentArray;
然后,我尝试从CSV文件装载数据,在Data.csv文件中的数据具有相同的值和相同的格式:
995,995,995,995,995,995,995,995,1000,997,995,994,992,993,992,989,988,987,990,993,989.
我运行的代码,它应该给出相同的图形输出。但是,似乎没有成功从CSV文件加载数据。
我无法弄清楚我的代码有什么问题。
NSMutableArray *contentArray = [NSMutableArray array];
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"csv"];
NSString *Data = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil ];
if (Data)
{
NSArray *myText = [Data componentsSeparatedByString:@","];
NSInteger idx;
for (idx = 0; idx < myText.count; idx++) {
NSString *data =[myText objectAtIndex:idx];
NSLog(@"%@", data);
id x = [NSNumber numberWithFloat:0+idx*0.002777778];
id y = [NSDecimalNumber decimalNumberWithString:data];
[contentArray addObject:
[NSMutableDictionary dictionaryWithObjectsAndKeys:x, @"x", y, @"y",nil]];
}
self.dataForPlot = contentArray;
}
唯一的区别是
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"csv"];
NSString *Data = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil ];
if (data){
}
难道我做错什么事吗?
请记录'pathForResource:ofType:'和'stringWithContentsOfFile:encoding:error:'的返回值并编辑您的问题以包含输出。还请停止将错误return-error'error:nil'抑制为'error:&nameOfAVariableYouCreateToHoldAnNSErrorObject'并记录该对象,并编辑您的问题以包含* that *输出。框架经常试图告诉你你做错了什么;当你将'NULL'(或'nil')传递给错误返回时,你会阻止它们这样做。 – 2010-03-15 04:12:00
作为一种风格,我可以建议“数据”不是最有意义的变量名称,并且有两个不同的变量,分别命名为“数据”和“数据”是彻头彻尾的混淆。 +1为“不要忽略错误返回,它可能试图告诉你的东西” – 2010-03-15 04:28:56
调用一个字符串变量“数据”是自己混淆,因为有一个NSData类,而我,作为一个,如果它包含一个NSData对象,则更有可能命名变量“data”。 – 2010-03-15 04:36:19