2011-08-05 45 views
14

Tôi đang triển khai CHCSVParser vào ứng dụng iPhone của mình (cảm ơn Dave!) Tuy nhiên tôi thực sự bối rối về cách sử dụng nó. Tôi đã đọc đọc-tôi và tìm kiếm một số câu hỏi về SO nhưng vẫn không chắc chắn 100% phải làm gì.Thông tin cơ bản Giới thiệu Để sử dụng CHCSVParser

Tôi có tệp .CSV với 5000 hàng dữ liệu và 3-4 cột.

Tôi muốn dữ liệu này đổi lại, tải UITableView của tôi cùng với chi tiết tương ứngViewController của nó.

Vì vậy, tôi giả định rằng tôi cần phải bằng cách nào đó triển khai phương pháp mảng của API nhưng bất kỳ ai cũng có thể giúp tôi bắt đầu?

Trả lời

30

Tôi rất vui vì bạn thích nó :)

Về cơ bản, CHCSVParserchỉ 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ảngNSString.

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. :)

+0

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

+0

@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. :) –

+0

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

Các vấn đề liên quan