Код ниже - это функция, которая извлекает данные из базы данных Firebase и добавляет их в массивы. Я пытаюсь получить доступ к массивам вне функции, но массивы отображаются как пустые. Я считаю, что это потому, что я использую self при добавлении данных в массивы, однако я не знаю, как решить эту проблему. Я был бы очень признателен, если бы кто-то мог помочь мне с этим.
Код для функции -
db.collection("paper").getDocuments { (snapshot, error) in
print("after")
if let error = error {
print(error)
return
}
else {
for document in snapshot!.documents {
let databaseData = document.data()
let name = databaseData["name"] as? String ?? ""
let category = databaseData["category"] as? String ?? ""
let firstLetter = name.prefix(1)
let storageRef = Storage.storage().reference()
let imageRef = storageRef.child("Paper/\(name).jpg")
imageRef.getData(maxSize: 1000 * 1024) { data, error in
if let error = error {
print(error)
return
}
else {
let image = UIImage(data: data!)
if firstLetter == "A" {
self.aData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "B" {
self.bData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "C" {
self.cData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "D" {
self.dData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "E" {
self.eData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "F" {
self.fData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "G" {
self.gData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "H" {
self.hData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "I" {
self.iData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "J" {
self.jData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "K" {
self.kData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "L" {
self.lData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "M" {
self.mData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "N" {
self.nData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "O" {
self.oData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "P" {
self.pData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "Q" {
self.qData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "R" {
self.rData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "S" {
self.sData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "T" {
self.tData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "U" {
self.uData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "V" {
self.vData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "W" {
self.wData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "X" {
self.xData += [CellData.init(image: image, message: name, category: category)]
}
else if firstLetter == "Y" {
self.yData += [CellData.init(image: image, message: name, category: category)]
}
else {
self.zData += [CellData.init(image: image, message: name, category: category)]
}
print("inside")
}
}
}
self.tableView.reloadData()
self.setupAlphaHeaderArray()
}
}
Код для настройкиAlphaHeaderArray-
if aData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "A")]
}
if bData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "B")]
}
if cData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "C")]
}
if dData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "D")]
}
if eData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "E")]
}
if fData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "F")]
}
if gData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "G")]
}
if hData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "H")]
}
if iData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "I")]
}
if jData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "J")]
}
if kData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "K")]
}
if lData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "L")]
}
if mData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "M")]
}
if nData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "N")]
}
if oData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "O")]
}
if pData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "P")]
}
if qData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "Q")]
}
if rData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "R")]
}
if sData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "S")]
}
if tData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "T")]
}
if uData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "U")]
}
if vData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "V")]
}
if wData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "W")]
}
if xData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "X")]
}
if yData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "Y")]
}
if zData.count > 0 {
alphaHeaderArray += [AlphaHeader.init(label: "Z")]
}
}