2016-04-17 3 views
0

Я пытаюсь подсчитать, сколько строк данных есть в моем файле, и я использую этот кусок кода, чтобы сделать это:Подсчет строк в файле Swift

data = try String(contentsOfFile: localFilePath as String, 
          encoding: NSASCIIStringEncoding) 
let textArr = data.componentsSeparatedByString("\r") 
     let myCount = textArr.count 
     print(myCount) 

Однако независимо от того, сколько строк текста в моем файле всегда кажется, что печатается 1. Что я здесь делаю неправильно?

+5

Вы пытаетесь отделить данные с "\ n"? – ridvankucuk

+1

Вы должны использовать NSUTF8StringEncodig –

ответ

0

Попробуйте изменить терминатор на "\ n".

Возможно, ваш файл имеет Unix-подобные окончания строки. Значения строк будут завершены с помощью \ n.

Unix-подобные системы (такие как OS X и iOS) обычно завершают строки с \ n. Windows завершает строки с помощью \ r \ n.

Источник: https://en.wikipedia.org/wiki/Newline#Representations

5

Мы могли догадаться ли линии расщепляются '\r', '\n', или что-то еще, или мы могли бы разумно использовать новый набор строки символов:

let newLineSet = NSCharacterSet().newLineCharacterSet() 
let textArr = data.componentsSeparatedByCharactersInSet(newLineSet) 
Смежные вопросы