Ben bunu Temelde
, sadeceCHCSVParser
CSV dosyalarını ayrıştırır :) gibi sevindim. Bir CSV dosyasına bir yol verirsin ve size bir sürü NSStrings
verir. Bu noktanın ötesinde yaptığınız şey tamamen size kalmış.
Yani, iOS uygulamanızda "Data.csv" adında bir CSV dosyası eklediğinizi varsayalım. İşte bunu ayrıştırmak için CHCSVParser
şekilde kullanmalısınız:
Bu noktada
NSString *path = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"csv"];
NSError *error = nil;
NSArray *rows = [NSArray arrayWithContentsOfCSVFile:path encoding:NSUTF8StringEncoding error:&error];
if (rows == nil) {
//something went wrong; log the error and exit
NSLog(@"error parsing file: %@", error);
return;
}
, rows
bir dizidir. rows
'daki her elemanın kendisi, CSV dosyasında tek bir satırı temsil eden bir dizidir. Ve öğesinin her bir öğesi dizisinin NSString
olduğunu.
Öyleyse CSV dosyası şöyle diyelim: Çözümleyici aracılığıyla çalıştırırsanız, bu eşdeğer geri döneceğiz
Barringer,Arizona,United States,Earth
"Chicxulub, Extinction Event Crater",,Mexico,Earth
Tycho,,,Moon
Lonar,Maharashtra,India,Earth
:
[NSArray arrayWithObjects:
[NSArray arrayWithObjects:@"Barringer",@"Arizona",@"United States",@"Earth",nil],
[NSArray arrayWithObjects:@"Chicxulub, Extinction Event Crater",@"",@"Mexico",@"Earth",nil],
[NSArray arrayWithObjects:@"Tycho",@"",@"",@"Moon",nil],
[NSArray arrayWithObjects:@"Lonar",@"Maharashtra",@"India",@"Earth",nil],
nil];
sen ne yapacaksın o zaman senin işin. Eğer ilgilenen rahat edeceğiniz şekilde bu verileri ve yeniden yapı sürer olsun böylece CSV ayrıştırıcı, bir şey hakkında UITableView
bilmiyor ve bu veri modeline uyar. Ayrıca, CHCSVParser
kullanarak, the terms under which it is made available'a uymayı kabul ettiğinizi unutmayın. :)
Teşekkürler, Dave, bu çok yardımcı oluyor! Peki bu yöntemi uygulamak için en uygun yer nerede benim tablo VC's viewDidLoad' yöntemine? Ve API otomatik olarak bilir ki, '' 'içinde iki' '' ', bu tek bir dizgidir? – Jon
@Jon Bu, düzeltdiğim bir yazım hatasıydı. Re: en iyi yer? İçinde bir VC onu koymak için iyi bir yer olduğunu düşünüyorum. Bunu koymak için en iyi yer, uygulamanıza tamamen bağlı bir şeydir. :) –
Teşekkürler Dave. Bunu ViewDidLoad'da yapmayı denedim, ancak uygulamanın açılmasının sonsuza kadar sürmesi gerekiyor. Başka takılmalarınız var mı? Simülatörde iyi çalışıyor, ancak cihazımda uygulamanın açılacağı 30 sn. İlk tabloyu yüklemek için bu verilere ihtiyacım var. – Jon