0

I am very new to learning to code in Swift. I am trying to make an application that keeps a list of people who are coming in. I want it to log the name they input, time of visit, and the nature of their visit. However, I want this to be able to be exported to a program like Numbers or Excel. I have found some info on storing the inputs from the user but those seem to get deleted if the app is closed. I can't seem to find any other info, but perhaps I'm just searching the wrong info. Any help or guidance is appreciated.

rmaddy
  • 314,917
  • 42
  • 532
  • 579
iamchip
  • 3
  • 2
  • Before you worry about exporting your data in some other format, you should focus on getting your app to keep the data that is entered. – rmaddy Jun 26 '18 at 16:02
  • [this answer](https://stackoverflow.com/a/24098149/9359678) might help you, good luck! – Yaroslav Luchyt Jun 26 '18 at 16:08

1 Answers1

1

Just store your log in a Array and then with this function you safe it to a .csv file.

func saveCSV(_ name : String,_ customUrl : URL) -> Bool {

    let fileName = "\(name).csv"
    let b = customUrl.appendingPathComponent(fileName)


    var csvText = ""
    var id = "1"
    var name = "test"
    csvText = "ID,Name\n"
    let newLine = "\(id),\(name))\n"
    csvText.append(newLine)

    //or create a loop
    // Task is my custom Struct
    var array : [Task]
    for task in customArray {
        let newLine = "\(task.ean),\(task.menge),\(task.name)\n"
        csvText.append(newLine)
    }

    do {
        try csvText.write(to: b, atomically: true, encoding: String.Encoding.utf8)
        return true
    } catch {
        print("Failed to create file")
        print("\(error)")
        return false
    }
}

func createDic()->URL?{
            let documentsPath1 = NSURL(fileURLWithPath: NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0])
            // CSV is the folder name
            let logsPath = documentsPath1.appendingPathComponent("CSV")
            do {
                try FileManager.default.createDirectory(atPath: logsPath!.path, withIntermediateDirectories: true, attributes: nil)
                return logsPath
            } catch let error as NSError {
                NSLog("Unable to create directory \(error.debugDescription)")
            }
            return nil
        }

var customUrl = createDic()

and now you can call it :

 if saveCSV(userList, customUrl){
print("success")
}

and after this you can do what you want with the .csv file

Osman
  • 1,496
  • 18
  • 22