如何在Swift中为UITableView处理数组中的两种不同类型
我们正在考虑将应用程序从obj-c迁移到Swift。一个问题是,我们的obj-
c代码中有一个UITableView,其中包含类型为Header
或类型的对象Item
。基本上,它解析cellForRowAtIndexPath上具有的类型。Swift数组(据我所知)只能处理一种类型。鉴于此,我们如何处理UITableView中要使用的两种不同类型?是否会有像DataObj这样的包装对象,我们每个工作都有可精巧的实例?
-
这是一种使用协议来组合两个类的方法:
protocol TableItem { } class Header: TableItem { // Header stuff } class Item: TableItem { // Item stuff } // Then your array can store objects that implement TableItem let arr: [TableItem] = [Header(), Item()] for item in arr { if item is Header { print("it is a Header") } else if item is Item { print("it is an Item") } }
这种过度的优点
[AnyObject]
或者NSMutableArray
是只有实现了这个类TableItem
将数组中是允许的,所以您将获得额外的类型安全。
-
如何在Swift中扩展类型化数组?
2021-01-31 关注 0 浏览112 1答案
-
如何在 Swift 中扩展类型化数组?
2022-07-28 关注 0 浏览11 1答案
-
移情的两种不同类型是()。
2021-04-26 关注 0 浏览48 1答案
-
移情的两种不同类型是()。
2021-04-26 关注 0 浏览59 1答案
-
接受两种不同类型作为参数的方法
2021-01-30 关注 0 浏览87 1答案
-
如何在Swift中对特定类型的数组进行扩展
2021-01-31 关注 0 浏览94 1答案
-
如何正确解组不同类型的数组?
2021-02-01 关注 0 浏览91 1答案
-
如何在Golang中编写函数来处理两种类型的输入数据
2021-02-01 关注 0 浏览61 1答案
-
两种不同的类型如何使用接口在golang中实现相同的方法?
2021-02-01 关注 0 浏览80 1答案
-
您如何在Go中实现用于不同类型的容器?
2021-02-01 关注 0 浏览78 1答案