In the following code, is it safe to append to an array? Is the order guaranteed to be maintained?

```
let processedData: [SomeType] = []
let dispatchGroup = DispatchGroup()
for _ in 0..<N {
    dispatchGroup.enter()
    startSomeAsyncTaskXYZ { (data, error) in
        // handle error and process data
        // add processed data to an array
        processedData.append(..)
        dispatchGroup.leave()
    }
}
dispatchGroup.notify(queue: .main) {
    // update UI
}

```