Лучший способ подойти к загрузке класса из файла с разделителями-запятыми - PullRequest
3 голосов
/ 14 декабря 2010

Я довольно новичок в Objective-C и объектно-ориентированном программировании в целом и имею теоретический вопрос стилистического типа.Что я хочу сделать, это загрузить таблицу классов с записями из файла с разделителями-запятыми.Данные в файле состоят из множества записей, состоящих из короткого ключа, за которым следуют несколько строковых значений, разделенных запятыми.

Есть миллион способов сделать это, но я спрашиваю, какой будет путь, который был бы наилучшим с чисто теоретической точки зрения.Я хотел бы пока держаться подальше от любого вида XML-кодирования, но, вероятно, в конечном итоге я перейду в этот формат, как только я соберу программу ввода.и передать структуру в и из функции, создать новый экземпляр класса, загрузить его из структуры, а затем добавить в массив.Я бы использовал метод stringWithContentsOfFile для начальной загрузки файла в строку, а затем использовал строковые функции и некоторые указатели для перехода по файлу для возврата элементов структуры, которые я затем загружал в класс.как разумный способ сделать это в target-c, или есть лучший метод, который, возможно, более теоретически обоснован и который сработал бы по крайней мере так же?

1 Ответ

4 голосов
/ 21 декабря 2010

У вас есть файл CSV, и вы хотите прочитать его? Для этого есть код .

Самый простой подход будет выглядеть примерно так:

#import "CHCSV.h"

NSString * csvFile = ...; //path to the CSV file
NSError * error = nil;
NSArray * contents = [NSArray arrayWithContentsOfCSVFile:csvFile
                                                encoding:NSUTF8StringEncoding
                                                   error:&error];
if (contents == nil) {
    NSLog (@"Error %@", error);
} else {
    for (NSArray * row in contents) {
        NSLog(@"CSV fields in this line: %@", row);
        // "row" contains all the fields (as NSStrings) that were present
        // on this line of CSV
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...