Lire un fichier texte ligne par ligne Swift?
Juste commencé à apprendre Swift, j'ai obtenu mon code pour lire à partir du fichier texte, et l'Application affiche le contenu du fichier Texte Entier. Comment puis-je afficher ligne par ligne et faire appel à cette ligne plusieurs fois?
fichier Texte.txt contient les éléments suivants.
- banane
- Apple
- poire
- fraise
- myrtille
- blackcurrent
ce qui suit actuellement..
if let path = NSBundle.mainBundle().pathForResource("TextFile", ofType: "txt"){
var data = String(contentsOfFile:path, encoding: NSUTF8StringEncoding, error: nil)
if let content = (data){
TextView.text = content
}
aussi s'il y a une autre façon de le faire, faites-le moi savoir. Très apprécié
3 réponses
Swift 3.0
if let path = Bundle.main.path(forResource: "TextFile", ofType: "txt") {
do {
let data = try String(contentsOfFile: path, encoding: .utf8)
let myStrings = data.components(separatedBy: .newlines)
TextView.text = myStrings.joined(separator: ", ")
} catch {
print(error)
}
}
la variable myStrings
doit être chaque ligne des données.
le code utilisé est: la Lecture du fichier ligne par ligne dans iOS SDK écrit en Obj-C et à l'aide de NSString
Vérifiez l'historique d'édition pour les versions précédentes de Swift.
mise à jour pour Swift 2.0 /Xcode 7.2
do {
if let path = NSBundle.mainBundle().pathForResource("TextFile", ofType: "txt"){
let data = try String(contentsOfFile:path, encoding: NSUTF8StringEncoding)
let myStrings = data.componentsSeparatedByCharactersInSet(NSCharacterSet.newlineCharacterSet())
print(myStrings)
}
} catch let err as NSError {
//do sth with Error
print(err)
}
vaut également la peine de mentionner que ce code lit un fichier qui est dans le dossier du projet (puisque pathForResource est utilisé), et non pas dans le dossier des documents de l'appareil
vous voulez probablement lire le dossier entier en une seule fois. Je parie que c'est très petit.
mais ensuite vous voulez diviser la chaîne résultante en un tableau, puis distribuer le contenu du tableau parmi divers éléments UI, tels que les cellules de table.
un exemple simple:
var x: String = "abc\ndef"
var y = x.componentsSeparatedByString("\n")
// y is now a [String]: ["abc", "def"]