Я работаю над импортом карточек из файла CSV в моем приложении Swift. Я использую следующий метод для генерации и записи файла CSV: < /p> [code]func generateCSVText(withManagedObjects arrManagedObject: [Flashcard]) { var CSVString = "answer, question\n"
for flashcard in arrManagedObject { let entityContent = "\"\(flashcard.flashcardAnswer)\", \"\(flashcard.flashcardQuestion)\"\n" CSVString.append(entityContent) }
let tempDirectory = FileManager.default.temporaryDirectory let fileURL = tempDirectory.appendingPathComponent("\(cardSet.cardSetName).csv")
do { try CSVString.write(to: fileURL, atomically: true, encoding: .utf8) DispatchQueue.main.async { self.csvFileURL = fileURL } self.isShowingExportView = true } catch { print("Error writing CSV: \(error.localizedDescription)") } } < /code> Затем я пытаюсь импортировать его с помощью: < /p> func importFlashcards(from fileURL: URL) { do { let content = try String(contentsOf: fileURL, encoding: .utf8) let rows = content.components(separatedBy: "\n").dropFirst() // Skip header
for row in rows { let trimmed = row.trimmingCharacters(in: .whitespacesAndNewlines) guard !trimmed.isEmpty else { continue }
var components = trimmed.components(separatedBy: "\", \"") if components.count == 2 { // Remove surrounding quotes var answer = components[0] var question = components[1]
if answer.hasPrefix("\"") { answer.removeFirst() } if question.hasSuffix("\"") { question.removeLast() }
dataController.newFlashcard(answer: answer, question: question) } } } catch { print("Failed to load flashcards: \(error.localizedDescription)") } } < /code> Однако, когда я выбираю файл для импорта, я получаю следующую ошибку: < /p> Failed to load flashcards: ERR257.DFU [/code] Я также открыл CSV в онлайн-редакторе и просмотре CSV, выбранном кодировании «UTF-8», и он отображался/отредактировал просто хорошо.