¿Leer un file de text línea por línea en Swift?

Acabo de empezar a aprender Swift, tengo mi código para leer en el file de text y la aplicación muestra el contenido del file de text completo. ¿Cómo puedo mostrar línea por línea y llamar a esa línea varias veces?

TextFile.txt contiene lo siguiente.

  1. Plátano
  2. manzana
  3. Pera
  4. fresa
  5. arándano
  6. stream negra

Lo siguiente es lo que actualmente tiene …

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 } 

También si hay otra forma de hacerlo, por favor avíseme. Muy apreciado

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 debe ser cada línea de datos.

El código utilizado es de: Leer files línea por línea en iOS SDK escrito en Obj-C y utilizando NSString

Revisa el historial de edición de las versiones anteriores de Swift.

Actualización para 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) } 

También vale la pena mencionar que este código lee un file que está en la carpeta del proyecto (ya que se utiliza pathForResource), y no en, por ejemplo, la carpeta de documentos del dispositivo

Probablemente quiera leer todo el file de una vez. Apuesto a que es muy pequeño.

Pero luego desea dividir la cadena resultante en una matriz y luego distribuir los contenidos de la matriz entre varios elementos de la interfaz de usuario, como las celdas de la tabla.

Un ejemplo sencillo:

  var x: String = "abc\ndef" var y = x.componentsSeparatedByString("\n") // y is now a [String]: ["abc", "def"]