2008-11-26 6 views
6

Làm cách nào để đọc tệp dữ liệu trong dự án iPhone? Ví dụ, cho phép nói rằng tôi có một tập tin tĩnh gọi là "level.dat" được cấu trúc như sau: chướng ngại vật: 10 thời gian: 100 obstacle1: 10,20 ...Tải các tệp dữ liệu trong dự án iPhone

Tôi muốn đọc nội dung của tập tin vào một NSString sau đó làm phân tích cú pháp. Làm cách nào để đọc nội dung của tệp vào chuỗi? Ngoài ra, trong dự án nên tập tin "level.dat" nằm ở đâu? Nó có nên dưới "Tài nguyên" hay chỉ trong thư mục chính?

Cảm ơn trước!

Trả lời

18

Xem câu trả lời này: How to fopen() on the iPhone? cho biết cách truy cập vào tài nguyên trong gói của bạn. Khi bạn có đường dẫn, chỉ cần sử dụng [NSString stringWithContentsOfFile: encoding: error:].

NSString *path = [[NSBundle mainBundle] pathForResource: @"level" ofType: @"dat"] 
NSError *error = nil; 
NSString *data = [NSString stringWithContentsOfFile: path 
              encoding: NSUTF8StringEncoding 
               error: &error]; 
-1

Nếu bạn cần giúp phân tích các chuỗi dữ liệu, có một bài viết hữu ích về Cocoa For Scientist

3

Trong khi đây không phải là những gì bạn yêu cầu, xem xét chuyển các tập tin của bạn vào plists. Bạn sẽ phải định dạng lại chúng vào XML, nhưng sau đó bạn có thể tải chúng thẳng vào một NSDictionary với:

dict = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"levels" ofType:@"plist"]]; 
+0

Lưu ý rằng bạn có thể làm điều tương tự với các mảng, rất có khả năng dữ liệu của anh ấy có thể phù hợp hơn với cấp cao nhất của mảng chứ không phải từ điển. –

0

bạn đã xem xét việc đưa các dữ liệu trong một cơ sở dữ liệu SQLite thay vì một tập tin phẳng? Tôi thấy rằng API rất dễ sử dụng trên iPhone.

Đó là cách tôi thực hiện tất cả lưu trữ dữ liệu của mình trên điện thoại ngay bây giờ.