Tôi rất vui vì bạn thích nó :)
Về cơ bản, CHCSVParser
chỉ phân tích cú pháp file CSV. Bạn cung cấp cho nó một đường dẫn đến một tập tin CSV, và nó sẽ cung cấp cho bạn trở lại một bó toàn bộ NSStrings
. Những gì bạn làm ngoài điểm đó là hoàn toàn tùy thuộc vào bạn.
Vì vậy, giả sử bạn đã bao gồm tệp CSV trong ứng dụng iOS có tên "Data.csv". Đây là cách bạn muốn sử dụng CHCSVParser
để phân tích nó:
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;
}
Tại thời điểm này, rows
là một mảng. Mỗi phần tử trong rows
chính là một mảng biểu thị một hàng duy nhất trong tệp CSV. Và mỗi phần tử của rằng mảng là NSString
.
Vì vậy, giả sử tập tin CSV của bạn trông như thế này:
Barringer,Arizona,United States,Earth
"Chicxulub, Extinction Event Crater",,Mexico,Earth
Tycho,,,Moon
Lonar,Maharashtra,India,Earth
Nếu bạn chạy nó thông qua việc phân tích cú pháp, bạn sẽ lấy lại tương đương với điều này:
[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];
Những gì bạn làm với sau đó là doanh nghiệp của bạn. Trình phân tích cú pháp CSV không biết bất kỳ điều gì về UITableView
, do đó bạn có thể lấy dữ liệu này và cấu trúc lại theo cách bạn cảm thấy thoải mái khi xử lý và phù hợp với mô hình dữ liệu của bạn.
Ngoài ra, hãy nhớ rằng bằng cách sử dụng CHCSVParser
, bạn đồng ý tuân thủ the terms under which it is made available. :)
Cảm ơn, Dave, rất hữu ích! Vậy đâu là nơi tốt nhất để thực hiện phương pháp này, vào phương thức 'viewDidLoad' của VC của bảng? Và API tự động biết rằng khi có một ',' trong hai '" "', đó là tất cả một chuỗi? – Jon
@Jon Đó là lỗi đánh máy mà tôi đã sửa. Re: nơi tốt nhất? Bên trong VC là một nơi tốt để đặt nó, tôi cho là vậy. Nơi tốt nhất để đặt nó là cái gì đó phụ thuộc hoàn toàn vào ứng dụng của bạn. :) –
Cảm ơn Dave. Tôi đã thử làm điều đó trong ViewDidLoad nhưng phải mất mãi mãi để ứng dụng mở ngay bây giờ. Bạn có bất kỳ đề xuất nào khác không? Nó hoạt động tốt trong mô phỏng nhưng trên thiết bị của tôi phải mất 30 giây để ứng dụng mở. Tôi cần dữ liệu này để tải tableView ban đầu. – Jon