ios - 如何在 Swift 中扩展内部范围值
问题描述
我开始开发没多久。所以我的代码有问题。我想返回函数data.count
。TableView
但我无法获得数据的价值:[DataGroup]
在db.collection()
. 它没有超出db.collection()
范围的价值。那么如何从该范围获取数据呢?
class RecordGroupViewController: UIViewController, UITableViewDataSource {
let db = Firestore.firestore()
var data: [DataGroup] = []
override func viewDidLoad() {
super.viewDidLoad()
fetchDataGroup()
}
func fetchDataGroup() {
db.collection("data").getDocuments() { (querySnapshot, err) in
if let err = err {
print("Error getting documents: \(err)")
} else {
for document in querySnapshot!.documents {
do {
let docuData = try JSONSerialization.data(withJSONObject: document.data(), options: [])
let decoder = JSONDecoder()
let groupData: DataGroup = try decoder.decode(DataGroup.self, from: data)
self.data.append(groupData)
} catch let error {
print("---> error: \(error.localizedDescription)")
}
}
}
}
print("\(self.recordGroups.count)")
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
return UITableViewCell()
}
}
解决方案
根据我对您问题的理解,您想访问数据变量的计数。
您可以使用 self.data.count 从代码中的任何位置执行此操作
但是,如果您希望您的 tableView 使用这个新值:
使用 IBOutlet 将您的 tableview 链接到您的控制器(或者如果您以编程方式实例化它,则创建对它的引用)
使用新数据附加数据后,调用 self.yourTableViewReference.reloadData(),这将使 tableView 使用新附加的数据调用您的 dataSource 方法 numberOfRowsInSection。
推荐阅读
- python - 导入气流-> ImportError:无法导入名称版本(使用 Python 2.7)
- sql - 错误:缺少表“测试”的 FROM 子句条目
- python - PyAutoGui LocateOnScreen() 返回“无”
- android - Android Studio 无法从 lib 文件夹中的 .JAR 文件导入函数
- android - Android 在使用 NavController 时向上导航正确的图表
- javascript - window.prompt 无法翻译资源
- javascript - 如何在 Laravel 中使用 crudbooster 创建我自己的按钮?
- mysql - 将破折号添加到 SQL 插入而不进行计算
- javascript - Cypress - 使用 JQuery 解析 XHR 请求的 XML 响应
- php - 用php删除xml中标签值之间的空格