xcode quit unexpectedly

I want to read almost a million addresses in foor loop using CLGeocoder and save their coordinates. I have also put a 2 second pause in each loop, but every time I want to run the program in Xcode, after 200 or 300 iterations, the program closes suddenly. Does anyone know the reason? Is there a problem with the code? here is my code :


func createCSV(from recArray:[Dictionary<String, AnyObject>]) {
    var csvString = "\("Adresse");\("latitute ");\("longitude")\n\n"
    for dct in recArray {
      csvString = csvString.appending("\(String(describing:dct["Adresse"]!));\(String(describing: dct["latitute"]!));\(String(describing: dct["longitude"]!))\n")
    }

    let fileManager = FileManager.default
    do {
      let path = try fileManager.url(for: .documentDirectory, in: .allDomainsMask, appropriateFor: nil, create: false)
      let fileURL = path.appendingPathComponent("CSVRec.csv")
      try csvString.write(to: fileURL, atomically: true, encoding: .utf8)
    } catch {
      print("error creating file")
    }

  }

func getLocation(for address: String) async throws -> CLLocationCoordinate2D {
   
  guard let coordinate = try? await CLGeocoder().geocodeAddressString(address) else {
    throw getLocationError.unableToGetLocation
  }
   
  return coordinate.first!.location!.coordinate
  
  }



var Coordinates:[Dictionary<String, AnyObject>] = Array()
var address: String

for row in result.rows {

  address = "\(row["LABE"] ?? "") \(row["HAUS"] ?? ""), \(row["Gemeindename"] ?? "")"
  var coordinate = try await getLocation(for: address)
  var dct = Dictionary<String, AnyObject>()
  dct.updateValue(address as AnyObject, forKey: "Adresse")
  dct.updateValue(coordinate.latitude as AnyObject, forKey: "latitute")
  dct.updateValue(coordinate.longitude as AnyObject, forKey: "longitude")
  Coordinates.append(dct)
  sleep(2)
}

createCSV(from: Coordinates)

Does anyone have an idea what to do?

It looks like you're creating a new CLGeocoder object for every row, and you're processing rows in a synchronous loop. This might be triggering a memory usage spike while the loop runs, and that can result in abnormal termination.

What happens if create a single instance of CLGeocoder and use that every time? Also, are there any messages logged in the Xcode console? Is there an exception or a crash? What does the Xcode memory debugger say about your overall memory use during execution of this code?

xcode quit unexpectedly
 
 
Q