Я использую Xcode 11.3.1 и пытаюсь прочитать файл (он состоит из 100_000 пар целых чисел) в Swift Playground. Файл выглядит следующим образом:
100000 154 746 0 147 4 9000 1876 19 2345 467 5 6244 1 7532 .......
Первым элементом является N (общее количество пар), за которым следуют эти пары.
Следующий способ чтения файла:
import Foundation
import UIKit
var N = Int ()
var l = [UInt16] ()
var r = [UInt16] ()
let fileName = "request2"
guard let path = Bundle.main.path(forResource: fileName, ofType: "txt") else { fatalError("Can't get \(fileName).txt")
}
do {
let contents = try String(contentsOfFile: path)
let contentsInStringArray = contents.components(separatedBy: .whitespacesAndNewlines)
var i = 0
var isNRead = false
for element in contentsInStringArray {
guard !element.isEmpty else {
continue
}
if !isNRead {
N = Int(element) ?? 0
isNRead = true
continue
}
let temp = UInt16(element) ?? 0
if i % 2 == 0 {
l.append(temp)
} else {
r.append(temp)
}
i += 1
}
} catch _ {
fatalError("Can't get contents of \(fileName).txt")
}
Чтение файла происходит очень медленно! ? И в результате у меня закончилась память Xcode.
Как оптимизировать чтение?
Спасибо!