Swift - Écrire un Tableau dans un Fichier Texte
J'ai lu dans myArray (native Swift) à partir d'un fichier contenant quelques milliers de lignes de texte brut..
myData = String.stringWithContentsOfFile(myPath, encoding: NSUTF8StringEncoding, error: nil)
var myArray = myData.componentsSeparatedByString("\n")
- Je modifier une partie du texte en myArray (pas de point de coller ce code).
Maintenant, je veux écrire le contenu mis à jour de myArray dans un nouveau fichier.
J'ai essayé cette ..
let myArray2 = myArray as NSArray
myArray2.writeToFile(myPath, atomically: false)
mais le contenu du fichier est alors dans le plist format.
Est-il possible d'écrire un tableau de chaînes de texte dans un fichier (ou une boucle dans un tableau et ajouter chaque élément de tableau dans un fichier) dans Swift (ou bridgé Swift)?
OriginalL'auteur Kym | 2014-07-27
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour réduire votre tableau de retour vers une chaîne de caractères:
La
reduce
méthode de collecte et fusionne en une seule instance. Il faut une instance initiale et de la fermeture de fusionner tous les éléments de la collection dans cette instance d'origine.Mon exemple prend une chaîne vide comme première instance. La fermeture vérifie ensuite si la sortie est vide. Si il l'est, il n'a qu'à renvoyer le texte à ajouter, sinon, il utilise le Chaîne D'Interpolation de retour de la sortie existant et le nouvel élément avec un saut de ligne entre les deux.
À l'aide de diverses sucre syntaxique caractéristiques de Swift, l'ensemble de la réduction peut être réduite à:
let pieces = [ "hello", "goodbye" ]
let joined = "\n".join(pieces)
si vous avez une autre solution, s'il vous plaît poster une réponse distincte. Aussi, downvotes devrait être utilisé "à chaque fois que vous rencontrez une monumentale bâclée, sans effort déployé post, ou une réponse qui est clairement et peut-être dangereusement erronée." Je me trompe peut-être, mais je ne crois pas que ma réponse s'inscrit dans cette catégorie. Si c'est le cas, veuillez indiquer pourquoi.
Avec tout le respect dû, votre réponse est techniquement correct, mais est-ce le mauvais outil pour le travail. Pour donner un exemple, juste parce que l'on peut calculer Fibonacci termes de manière récursive, cela ne signifie pas que l'on devrait. DONC, est utilisé comme un vecteur d'apprentissage par de nombreux utilisateurs. Il est préférable de préconiser les bonnes pratiques. Une partie de ce code se termine dans un logiciel de production que moi et que vous allez utiliser. Le négatif n'est pas une attaque personnelle, mais plus d'un avertissement à quelqu'un "hey, ne vous contentez pas de copier-coller ce code."
Je ne le prenez pas personnellement. Votes négatifs sont pour des informations inexactes ou trompeuses, sinon séparer les réponses peuvent être en concurrence pour le plus grand nombre de voix étant la meilleure réponse pour la question. La plus importante partie de mon commentaire, c'est que vous devez fournir à votre réponse séparément, de sorte qu'il peut être mis en avant. Je vais voter moi-même. (Je suis d'accord que votre réponse est mieux, mais j'ai toujours l'impression que ma réponse a de valeur que pour montrer l'utilisation créative de
reduce
)Excellente idée, et merci d'être constructif, de SORTE er!
OriginalL'auteur drewag
Comme drewag souligne dans l'acceptation de poste, vous pouvez construire une chaîne à partir de la matrice et ensuite utiliser le
writeToFile
méthode sur la chaîne.Cependant, vous pouvez tout simplement utiliser Swift
Array.joinWithSeparator
pour accomplir la même chose avec moins de code et probablement de meilleures performances.Par exemple:
OriginalL'auteur DPlusV
Swift offre de nombreuses façons de parcourir un tableau. Vous pouvez faire une boucle par les chaînes et les imprimer dans un fichier texte un par un. Quelque chose comme ceci:
Je pense que c'est écrit tous les éléments de la matrice. Le problème, si vous suivez l'exemple exactement comme indiqué, est
myPath
est le même pour chaque itération. Chaque itération est d'écraser le fichier avec le contenu de l'itération précédente. Peu importe, même si vous mettez à jourmyPath
à chaque fois, c'est un peu difficile d'approche. Si le tableau avait 500 éléments que vous auriez besoin d'avoir 500 fichiers à stocker de cette façon. Jetez un oeil à la réponse de @DPlusV.OriginalL'auteur Jonah Katz