swift 5.1 Xcode iOS中的firebase服务类
Posted
技术标签:
【中文标题】swift 5.1 Xcode iOS中的firebase服务类【英文标题】:firebase service class in swift 5.1 Xcode iOS 【发布时间】:2020-01-30 22:11:25 【问题描述】:我创建了 firebase 服务类。在这个类中有一个函数getAllCategoryData()
,它从firebase中获取所有数据。
class FirebaseService
static public func getAllCategoryData(completion: @escaping ([CategoryModel]) ->Void )
var catModel = [CategoryModel]()
let databaseRef = Database.database().reference()
catModel.removeAll()
databaseRef.child("Category").queryOrderedByKey().observe(.value) (dataSnapshot) in
if let snapShot = dataSnapshot.children.allObjects as? [DataSnapshot]
for snap in snapShot
if let allData = snap.value as? [String:String]
let catName = allData["categoryName"]
let catImage = allData["categoryImage"]
catModel.append(CategoryModel(catName: catName!, catImg: catImage!))
//print("catName == \(catName!)")
print(catModel)
completion(catModel)
在此函数中,我试图获取所有类别数据,例如 categoryName 和 categoryImage。 并尝试将这些数据存储在我的 CategoryModel 类
中class CategoryModel
var categoryName : String?
var categoryImage : String
init(catName : String, catImg : String)
self.categoryName = catName
self.categoryImage = catImg
在我的 HometableVC 中,我像这样调用这个函数并将所有数据附加到我的var data = [CategoryModel]()
。所以我可以将这个 CategoryModel 数组显示到我的 tableview 中。但它给了我nil。
FirebaseCommon.getAllCategoryData (category) in
self.data.append(contentsOf: category)
print("======\(data.last?.categoryName)")
【问题讨论】:
【参考方案1】:数据的任何使用都必须在闭包内发生:
FirebaseCommon.getAllCategoryData (category) in
self.data.append(contentsOf: category)
print("======\(data.last?.categoryName)")
【讨论】:
那么我该如何使用该数组在表格视图中显示 要在更新数据后刷新表格视图,您正在寻找类似 @987654322@ 的内容。以上是关于swift 5.1 Xcode iOS中的firebase服务类的主要内容,如果未能解决你的问题,请参考以下文章
更新到 Xcode 11 Swift 5.1 后出现 Google AdMob 错误
xcode 4.2 中的 iOS 5.1 (9B176) SDK 问题
Mountain Lion 上 xCode 4.5.1 中的 iOS 4 和 iOS 5 SDK