Анализатор CSV, который я написал (http://github.com/davedelong/CHCSVParser), может анализировать файлы CSV в NSArray из NSArrays (если вы используете категорию NSArray, включенную в код), и я просто добавил метод в категорию, чтобы взять один изэти массивы и записать его обратно в файл CSV.
Так что, если у вас есть NSArray
из NSArrays
, то вы можете записать его в файл CSV, например:
[myArray writeToCSVFile:myCSVFile atomically:YES];
Если не удастся, если вы не передадите NSArray из NSArrays.
edit (подсказано комментарием @ Aran к вопросу), у любого объекта внутри подмассива будет свой метод -description
записывается в файл CSV. Если вы хотите записать в файл серию объектов с различными свойствами в качестве полей строки CSV, то моя оболочка требует, чтобы свойства были помещены в массив, а затем этот массив будет составлятьстрока.
edit # 2 Я только что обновил свой анализатор CSV, чтобы преобразовать запись в свой собственный класс. Теперь вы можете делать следующее:
CHCSVWriter * csvWriter = [[CHCSVWriter alloc] initWithCSVFile:outputFile atomic:NO];
NSInteger numberOfColumns = 3;
for (NSInteger currentIndex = 0; currentIndex < [csvArray count]; currentIndex++) {
id field = [csvArray objectAtIndex:currentIndex];
[csvWriter writeField:field];
if ((currentIndex % numberOfColumns) == (numberOfColumns - 1)) {
[csvWriter writeLine];
}
}
[csvWriter release];
Этонапишет ваш csvArray
вфайл с путем outputFile
, и файл будет выглядеть так:
First Name,Last Name,Phone
Tom,Chan,123
Peter,Wong,456
Mary's,"Cho""w",789