我想从每天更新的网络服务器解析csv。我正在使用此链接https://github.com/davedelong/CHCSVParser中的csvparser,我正在使用此代码:
NSError *err = [[[NSError alloc] init] autorelease];
NSString *lunchFileURL = [[NSString stringWithFormat:@"http://www.somewhere.com/LunchSpecials.csv"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *lunchFile = [NSString stringWithContentsOfURL:[NSURL URLWithString:lunchFileURL] encoding:NSUTF8StringEncoding error:&err];
CHCSVParser *p = [[CHCSVParser alloc] initWithContentsOfCSVString:lunchFile usedEncoding:&encoding error:nil];
我收到此错误:
No visible @interface for 'CHCSVParser' declares the selector 'initWithContentsOfCSVString:usedEncoding:error:'
我查看了此链接Load remote csv into CHCSVParser并且它无效。我是ios的菜鸟,请让我知道如何解决这个问题。真的感谢帮助。谢谢你。
答案 0 :(得分:1)
应该是:
NSError *err;
NSString *lunchFileURL = [[NSString stringWithFormat:@"http://www.somewhere.com/LunchSpecials.csv"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *lunchFile = [NSString stringWithContentsOfURL:[NSURL URLWithString:lunchFileURL]
encoding:NSUTF8StringEncoding
error:&err];
// if you're going to create a CHCSVParser yourself, the syntax is:
CHCSVParser *p = [[CHCSVParser alloc] initWithCSVString:lunchFile
encoding:NSUTF8StringEncoding
error:&err];
// or, if you're going to use NSArray+CHCSVAdditions.h, the syntax might be:
NSArray *array = [[NSArray alloc] initWithContentsOfCSVString:lunchFile
encoding:NSUTF8StringEncoding
error:&err];
注意:
您不需要alloc
/ init
NSError
个对象;这些带有NSError **
参数的类会在遇到错误时为您创建自动释放错误对象;否则他们不管它;
CHCSVParser
类方法不是initWithContentsOfCSVString
,而是initWithCSVString
;
或者,如果您使用NSArray
类扩展,则语法为arrayWithContentsOfCSVString
或initWithContentsOfCSVString
;以及
您指定了&encoding
的编码,但此参数不是指针,所以我看不出它可能是正确的;我刚刚指定了编码。
我假设您要使用NSArray+CHCSVAdditions
类别方法initWithContentsOfCSVString
或arrayWithContentsOfCSVString
(它为您提供autorelease
个对象),而不是CHCSVParser
,但这取决于你。