L'importation .des données csv dans un tableau
Je suis en Objective-C les dernières années.
Je suis en train de Xcode 6 bêta 4 avec swift.
Je veux importer une .csv forme de mon serveur à un tableau. Mon ancien code en Objective-C a été:
NSString *stringURL = @"https://[URL] /versionen/versionen.csv";
NSURL *url = [NSURL URLWithString:stringURL];
NSData *urlData = [NSData dataWithContentsOfURL:url];
if ( urlData )
{
NSString *csvResponseString = [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];
NSArray *MZVersionDatenZeilen = [csvResponseString componentsSeparatedByString:@"\n"];
NSEnumerator *MZVersionEnumerator = [MZVersionDatenZeilen objectEnumerator];
NSMutableArray *MZVersionDatenArray = [NSMutableArray arrayWithCapacity:[MZVersionDatenZeilen count]];
NSString *MZVersionZeile;
while (MZVersionZeile = [MZVersionEnumerator nextObject])
{
[MZVersionDatenArray addObject:[MZVersionZeile componentsSeparatedByString:@";"]];
}
}
Comment pourrais-je le faire dans Swift?
Est-il un meilleures pratiques en matière de recommandation?
- les googlers, notez que cette QA de nombreuses années, les vieux. une rapide enquête (2017) montre que la seule solution viable CSV bibliothèque semble être: github.com/Flinesoft/CSVImporter
Vous devez vous connecter pour publier un commentaire.
Il y a plusieurs swift bibliothèques disponibles:
CSVImporter, qui est asynchrone analyseur adapté pour travailler avec de grands fichiers csv.
SwiftCSV, qui est une simple CSV analyse de la bibliothèque pour OSX et iOS.
et CSwiftV, qui est un csv analyseur conforme à rfc4180 spec, mais selon l'auteur, il est tout en mémoire donc ne convient pas pour les gros fichiers.
Chaque réponse vous oblige à installer/télécharger une 3ème partie de l'utilité, mais qui peut ne pas être optimale si le fichier que vous travaillez avec est extrêmement simple ou vous travaillez dans une entreprise qui limite la 3e partie du code.
Alors j'ai pensé que je viens de poster incroyablement de base, la routine fichier CSV code de gestion que les gens peuvent l'utiliser comme une base et de modifier si nécessaire pour CSV simple manipulation.
Cela permettra de gérer tous les fichiers CSV que vous savez ne pas avoir des devis et des virgules, comme une partie du contenu d'un champ, qui dans mon cas sont la plupart des fichiers CSV. Rien de plus complexe que cela, je vous recommande d'utiliser l'une des bibliothèques posté dans les autres réponses.
J'espère juste que cela permet d'économiser quelqu'un un peu de la dactylographie.
Ne pas utiliser SwiftCSV que par le moment le plus upvoted réponse.
SwiftCSV ne gère pas les guillemets doubles à partir de maintenant donc, si toutes les données dans votre fichier CSV contient des sauts de ligne ou des virgules en elle, SwiftCSV ne fonctionne pas. Et vous risquez de perdre du temps de développement de savoir exactement pourquoi ça ne fonctionne pas ... pour vous sauver de ce moment, il suffit d'utiliser une autre bibliothèque.
La CSwiftV bibliothèque très bien fonctionné pour moi:
https://github.com/Daniel1of1/CSwiftV
Il gère texte cité, les retours à la ligne, des virgules, a fonctionné comme un charme sur mes données. Il a aussi des tests unitaires et est conforme à la rfc4180 standard.
Je vous recommandons d'utiliser CSVImporter – il prend soin des choses comme texte cité (à la suite de RFC 4180) pour vous et même les poignées de de très gros fichiers sans problèmes.
Par rapport à d'autres solutions, il travaille à la fois de manière asynchrone (évite les retards) et lit de votre fichier CSV ligne par ligne au lieu de charger l'ensemble de la Chaîne de caractères dans la mémoire (évite les problèmes de mémoire). En plus de cela, il est facile à utiliser et fournit belle rappels pour l'indication de l'échec, du progrès, de l'achèvement et de la même de cartographie des données si vous envie de.
La façon la plus simple de l'utiliser est que (vous donne chaque ligne dans un tableau de Chaînes de caractères):
Profiter de fonctions plus sophistiquées comme des données de cartographie et de progrès rappels: