Я пытаюсь извлечь текстовый файл из URL, а затем обработать этот текстовый файл в быстрой форме данных.Это как файл CSV, но использует "|"для разделителя столбцов и "}" для разделителя строк.
Я хотел бы удалить первую "строку" до символа "}" (мой разделитель строк - это "}", чтобы я могциклически перебирайте файл до тех пор, пока он не будет пуст.изменяемый объект данных. Это возможно?
Мой URL-запрос выглядит следующим образом:
func load(url: String) {
debugPrint(#function)
let url = URL(string: url)!
let task = URLSession.shared.dataTask(with: url) { data, response, error in
if let error = error {
self.handleClientError(error: error)
return
}
guard let httpResponse = response as? HTTPURLResponse,
(200...299).contains(httpResponse.statusCode) else {
self.handleServerError(error: response)
return
}
debugPrint("data got")
self.dataGot(data: data!)
DispatchQueue.main.async {
self.loadingDelegate!.stockLoadComplete()
}
}
task.resume()
}
В настоящее время я создаю строку из всего файла и выполняю некоторые строковые операции для разделения строк.и столбцы:
let asString = String(data: data, encoding: String.Encoding.utf8)
let rows = asString!.components(separatedBy: "}")
for row in rows {
self.addPriceLine(line: row)
}
Этот подход не работает с ошибкой malloc (после успешной обработки нескольких сотен строк), поэтому я подозреваю, что каким-то образом я иду по неверному пути.
IsЕсть ли «хороший» или рекомендуемый подход? Использование только объекта Data кажется мне более элегантным.
Советы приветствуются.