首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

无法重新加载Array<any>?从firebase到Table View swift的数据

无法重新加载Array<any>的问题,可以在从Firebase获取数据后,将数据存储在一个数组中,然后在TableView中使用该数组来显示数据。当需要重新加载数据时,可以直接对数组进行操作,然后调用TableView的reloadData()方法来刷新数据。

下面是一个简单的示例代码:

代码语言:txt
复制
import UIKit
import Firebase

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
    
    @IBOutlet weak var tableView: UITableView!
    
    var dataArray: [Any] = []
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 从Firebase获取数据
        fetchDataFromFirebase()
    }
    
    func fetchDataFromFirebase() {
        // 从Firebase获取数据的代码,将获取的数据存储在dataArray数组中
        // ...
        
        // 数据获取完成后刷新TableView
        tableView.reloadData()
    }
    
    // MARK: - UITableViewDataSource
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return dataArray.count
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
        
        // 根据indexPath从dataArray数组中获取数据,并设置到cell中
        let data = dataArray[indexPath.row]
        // ...
        
        return cell
    }
    
    // MARK: - UITableViewDelegate
    
    // 可以添加其他UITableViewDelegate的相关方法
    
}

在上述代码中,dataArray是存储数据的数组,fetchDataFromFirebase()方法用于从Firebase获取数据并刷新TableView,tableView(:numberOfRowsInSection:)方法返回dataArray数组的长度,tableView(:cellForRowAt:)方法从dataArray数组中获取数据并设置到cell中。

这样,当从Firebase获取数据后,调用fetchDataFromFirebase()方法可以重新加载数据,并且自动刷新TableView。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Swift-MVVM 简单演练(一)

如果不想对原方法有改动,那么就要重新写一个完全一样的只是最后面增加了这个需要的参数而已的一个新的方法。 你看swift是不是真的简洁了许多。...并且对比一下swift和objective-c的延迟加载异同点 模拟延迟加载数据 /// 加载数据 override func loadData() { // 模拟`延时`加载数据...reloadData() } } swift 延迟加载 // 模拟`延时`加载数据 DispatchQueue.main.asyncAfter(deadline: DispatchTime.now...} // 从`Bundle`加载配置的`json` guard let array = try?...viewModel的使命 字典转模型逻辑 上拉 / 下拉数据处理逻辑 下拉刷新数据数量 本地缓存数据处理 初体验 因为MVVM在swift中都是没有父类的,所以先说下关于父类的选择问题 如果分类需要使用

10.3K51

如何用TensorFlow和Swift写个App识别霉霉?

下面我会分享从收集“霉霉”照片到制作使用预训练模型识别照片的 iOS 应用的大体步骤: 预处理照片:重新调整照片大小并打上标签,然后切分成训练集和测试集,最后将照片转为 Pascal VOC 格式 将照片转为...第一步:预处理照片 首先我从谷歌上下载了 200 张 Taylor Swift 的照片,然后将它们分成两个数据集:训练集和测试集。然后给照片添加标签。测试集用于测试模型识别训练中未见过的照片的准确率。...给 Taylor Swift 的照片打标签,搞得从我旁边路过的人都以关爱智障的眼神望着我)。...将模型部署到 ML Engine:用 gcloud CLI 将模型部署到 ML Engine。 发出预测请求:用 Firebase 函数向 ML Engine 模型在线发起预测请求。...从 APP 到 Firebase Storage 的上传会触发 Firebase 函数。 本项目代码地址: https://github.com/sararob/tswift-detection

12.1K10
  • 使用 Swift 提高代码质量

    避免基于闭包的异步方式带来的内存循环引用和无法抛出异常的问题 Actor - 提供Actor模型避免多线程开发中进行数据共享时发生的数据竞争问题,同时避免在使用锁时带来的死锁等问题 快速 值类型 - 相比...一些不错的实践 利用编译检查 减少使用Any/AnyObject 因为Any/AnyObject缺少明确的类型信息,编译器无法进行类型检查,会带来一些问题: 编译器无法检查类型是否正确保证类型安全 代码中大量的...使用枚举关联值代替Any 例如使用枚举改造NSAttributedStringAPI,原有APIvalue为Any类型无法限制特定的类型。...Slice保存对原始Array/String的引用共享内存数据,不需要重新分配空间进行存储。...总结 个人从Swift3.0开始将Swift作为第一语言使用。编写Swift代码并不只是简单对于ObjC代码的翻译/重写,需要对于Swift特性更多的理解才能更好的利用这些特性带来更多的收益。

    4.7K30

    Swift 5.6到5.10新特性整理

    在 Swift 5.10 中,编译器只允许你在以下情况下从并发上下文访问共享的可变状态: 这个状态是不可变的且符合 Sendable(在这里了解更多关于 Sendable 的信息) 这个状态被隔离到一个全局...这关闭了一个重要的数据竞争安全漏洞,即全局 actor 隔离的默认值可能会无意中从 actor 外部同步运行。...let userCopy 行,它同时做了两件事: 将值从 newUser 复制到 userCopy。...其次,所有分布式方法的参数和返回值必须符合你选择的序列化过程,例如 Codable。这在编译时得到检查,因此 Swift 可以保证它能够从远程 actor 发送和接收数据。...: func synchronousCaller() { doRiskyWork() } 然而,如果我们尝试从异步函数执行相同的操作,Swift 将发出错误,因此这段代码将无法工作: func

    2.2K11

    《iOS UI 开发捷径 利用 Interface Builder 高效、优雅地开发 UI》 读书笔记第1章 Interface Bundle 概要第2章 使用 Interface Builder第3

    在源文件的 loadView() 方法里设置该 VC 的 View 属性为这个自定义的 View。...使用 xib 通过 Bundle 方式加载 通过 UINib 方式加载 使用与UIView子类源文件关联的xib Bundle - (NSArray *)loadNibNamed:(NSString *...UIView view.addSubview(testView) } 使用与 UIViewController 子类源文件关联的 xib Demo HomeViewController.swift...} } } IB 文件的加载过程 Bundle 和 UINib 将 nib 加载到内存 解固化并实例化 nib 文件里对应的对象 建立 connections (outlet、action) 调用...无法连线 IB 文件是否与源文件关联 @IBAction 红色提示 先在源文件中定义好方法,再从源文件 拖 到 IB 文件进行 连线

    2.5K80

    Swift基础语法(一)

    (redView) 基本数据类型 Swift中的数据类型有整型、浮点型、Bool型、元组、枚举、结构体、对象类型等,其中,基本数据类型包括:整型、浮点型、Bool型 整型 有符号整型 Int8:有符号...在Swift中,不同类型的数据是不可以运算的,比如整型和浮点型就不可以一块进行运算: ?...1...8//闭区间运算符,表示从1到8(包括1和8)的所有值的区间 1......//闭区间运算符,表示从1往后无限延伸 ...8//闭区间运算符,表示从8往前无限延伸 1..从1到8(包括1,但是不包括8)的所有值的区间 ..从...,取反 元组 OC中没有元组类型,元组是Swift中特有的一种数据结构。 元组用于定义一组数据,组成元组的数据可以称为元素。

    4.3K30

    Swift - 实例对象调用协议方法优先级分析 witness_methos witness_table分析

    本文主要探究: 当一个类遵循了协议,且协议和类都有方法实现时,实例对象调用方法的优先顺序 代码示例1: 转为SIL源码查看:swiftc -emit-sil main.swift | xcrun swift-demangle...Any>, Builtin.RawPointer), 0 // user: %46 %35 = tuple_extract %33 : $(ArrayAny>, Builtin.RawPointer...: main.YRProtocol in main // protocol witness for YRProtocol.teach() in conformance YRTeach } 复制代码 从witness_table...中没有声明方法时,witness_table中没有协议方法的声明,编译器会调用协议 extension中的方法实现 总结: 当协议中有方法声明时(witness_table有声明), 类中有方法实现:...实例对象优先调用类中的方法实现 类中没有方法实现: 实例对象调用协议拓展中的方法实现 当协议中没有方法声明时(witness_table没有声明): 实例对象总是调用协议拓展中的方法实现 参考: 官方文档

    28500

    Why Swift? Generics(泛型), Collection(集合类型), POP(协议式编程), Memory Management(内存管理)

    泛型和 Any 类型 这两个类型看起来很相似,但是一定要小心两者的区别。他们区别在于 Any 类型会避开类型的检查,所以尽量少用最好不用。...最后 Collection 概念是因为 Sequence 无法确定集合里的位置而在 Sequence 的基础上实现了 Indexable 协议。...,这里不得不对 Swift 的设计点个赞先 Sequence 上面的迭代器只会以单次触发的方式反复计算下个元素,但是对于希望能够重新查找或重新生成已生成的元素,这样还需要有个新的迭代器和一个子 Sequence...函数表派发是有动态性的,在 Swift 里函数表叫 witness table,大部分语言叫 virtual table。...Value Witness Table 和 Protocol Witness Table 会作为隐形的参数传递到泛型方法里。

    1.2K20

    手把手带你撸一个网易云音乐首页(二)

    通常我们在用 UITableView 加载数据的时候,数据的类型都是单一类似的,所以我们在构建 Cell 的时候,都是复用的同一个 Cell,类似手机通讯录一样。...但是网易云音乐首页可不是那么回事了,它的每个 Cell 呈现的内容类型都是不同的,这就导致我们无法通过复用 Cell 的方式来呈现数据了, 那怎么样才能构建出正确的视图呢! 首先,我们先来确定问题。...这个类可以被任何 ViewController 使用,这也是 MVVM 结构背后的关键思想之一:你的 ViewModel 对 View 一无所知,但它提供了 View 可能需要的所有数据。...Model, 将 JSON 数据映射到 Model 上,我们使用了原生的 Codable 来实现这一映射过程, 最后,创建 ViewModel,由于我们的每个 Section 展示的数据都不同,为了方便表视图加载数据...,就需要对所有的 Section 加载的数据进行抽象成一个公共类以便调用,所以这里我们使用了协议来处理。

    1.4K20

    Swift| 基础语法(四)

    前言 总结下 swift下的基础语法,里面涉及到:常量&变量、Swift中的数据类型、逻辑分支、循环、字符串相关、数组和字典、方法的书写调用等内容,考虑到阅读体验分多篇来展示,希望对大家学习swift...Swift| 基础语法(一) Swift| 基础语法(二) Swift| 基础语法(三) Swift| 基础语法(四) Swift| 基础语法(五) 本文涉及: 闭包 代理 通知 构造函数 懒加载...Swift 中的闭包有很多优化的地方: 1 根据上下文推断参数和返回值的类型 2 从单行表达式闭包中隐式返回 可以省略return 3 可以使用简化的参数如 $0 $1 意为从0或者1开始 4 提供了尾随闭包的语法..., forUndefinedKey key: String) 这个未定义的方法 原因是:swift 4.0 版本要在属性前面加@objc 五、懒加载 格式: lazy var 变量: 类型 = {...创建变量代码 }() 懒加载的写法本质上是定义并执行一个闭包 //MARK: -View懒加载 lazy var View: UIView = { let view = UIView(frame

    1.4K10

    Ask Apple 2022 与 SwiftUI 有关的问答(下)

    在更复杂的 UI 中,由于视图的更新速度过快,性能( 至少在 macOS 上 )迅速下降。A:有不同的策略。ObservableObject 是使视图或视图层次结构的失效( 引发重新计算 )的单元。...在两种方案中,如果在数据量很大的情况下,我更倾向于第一种方式,这样可以按需求读取数据。...就可以从 URL 中异步加载图片,也可以根据需要实现自己的异步加载器完成异步加载。...对于可能造成卡顿的图片数据,放弃从托管对象的图片关系中直接获取的方式。在 Cell 视图中,通过创建 request 从私有上下文中提取数据并转换成图片。...但这个滚动有两大问题,1、是一个未公开的半成品,有可能会被从 SwiftUI 框架中移除;2、不支持懒加载,即使和 Lazy 视图一起使用也会一次性加载全部的视图。

    14.8K30

    iOS 多线程-Thread

    类方法创建的线程自动运行,通过这种方式我们无法对 Thread 属性进行一些自定义的设置,如name、threadPriority等。...就绪:将线程对象添加到可调度线程池,等待 CPU 调用; 运行:CPU 从可调度线程池中选中线程进行调用,当前选中的线程为运行状态,未选中的重新变为就绪状态,此步程序员无法控制,由系统来处理; 堵塞:线程休眠处理...线程执行结束之前,状态可能会在就绪状态 和 运行状态 之间来回的切换。就绪状态 和 运行状态 之间的状态切换由 CPU 来完成, 程序员无法干涉。...调用这个方法之前,一定要注意释放之前由 C 语言创建的对象,不然会造成内存泄漏等问题。 sleep 目前只能控制其休眠多长时间或休眠到什么时间,外部无法手动唤醒。...threadPriority:线程的优先级,由 0.0 到 1.0 之间的浮点数指定,其中 1.0 是最高优先级,因为语义不够清晰,已经即将被弃用了,源码后跟有注释// To be deprecated

    95920

    Swift 网络请求数据与解析

    一: Swift 网络数据请求与处理最常用第三方  又有时间出来装天才了,还是在学swift,从中又发现一些问题,这两天上网找博客看问题弄的真的心都累。...看看在Swift中是在怎样请求数据,解析数据加载图片这些的,也使我们最基本最常见的用法了,先说说这几个三方库:      第一个: Alamofire  (它的原作者就是AFNetworking的原作者...Git地址:https://github.com/Alamofire/Alamofire     第二个: SwiftyJSON  一个解析JSON数据的三方库,使用swift写的,中间帮你省去swift...Git地址:  https://github.com/SwiftyJSON/SwiftyJSON     第三个: Kingfisher   (一个图片加载的国产库。重点是国产的的支持!)    ...additional setup after loading the view. } // MARK: 下载解析数据 func DownLoadData() -

    2.5K80

    好用软件推荐#250110-peepdb,简洁的数据库管理工具

    项目特点多数据库支持:PeepDB 兼容 MySQL、PostgreSQL、MariaDB、SQLite、MongoDB 和 Firebase,几乎涵盖了所有主流数据库。...快速开始要开始使用 PeepDB,你只需按照以下步骤操作:安装 PeepDB:你可以直接从 PyPI 安装 PeepDB:pip install peepdb保存数据库连接详情:对于 SQLite 数据库...> --database 列出已保存的连接:peepdb list查看表格:查看所有表格:peepdb view 查看特定表格:peepdb view... --table table_name>分页查看数据:peepdb view --table table_name> --page...贡献PeepDB 欢迎社区的贡献。你可以参考项目的贡献指南,了解如何参与到 PeepDB 的开发中。许可证PeepDB 根据 GNU 通用公共许可证第 3 版分发。

    13910

    高仿ios斗鱼界面

    最近也是因为入门swift不久,在网上找了一个项目就开始模仿,本项目用到的第三方库: Alamofire Kingfisher Swift3.0的蝶变 swift3.0相对于2.x,渐渐的脱离了...Swift版本更新升级 我们不需要再修改老版本 Swift 语言编译的库了。...我们必须重新编译所有该类的继承树 而这类问题被称为脆弱的基类 (Fragile base class) 可移植性 这个对于高级语言是很重要的特性,这意味着Swift可被移植到其他平台上。...新的API设计规范 Swift3.0 发布了新的语言设计规范 其中在Swift3.0中标准库和核心库将会遵循这个设计规范。...mvvm的开发架构,做到业务,数据,页面的真正分离,我们来看几个核心的类: base import UIKit private let kItemMargin : CGFloat = 10

    76250

    ios仿斗鱼界面

    最近也是因为入门swift不久,在网上找了一个项目就开始模仿,本项目用到的第三方库: Alamofire Kingfisher Swift3.0的蝶变 swift3.0相对于2.x,渐渐的脱离了oc和c...我们必须重新编译所有该类的继承树 而这类问题被称为脆弱的基类 (Fragile base class) 可移植性 这个对于高级语言是很重要的特性,这意味着Swift可被移植到其他平台上。...全面支持泛型特性 Swift 2.2已经很好的支持泛型 但是还不够完善,Swift 3.0开始 将全面支持泛型的所有特性。...新的API设计规范 Swift3.0 发布了新的语言设计规范 其中在Swift3.0中标准库和核心库将会遵循这个设计规范。...mvvm的开发架构,做到业务,数据,页面的真正分离,我们来看几个核心的类: base import UIKit private let kItemMargin : CGFloat = 10

    91290
    领券