尝试学习如何在类中使用结构。我有一个视图控制器,我希望能够从两个不同的源切换集合视图数据提供程序,所以我设置了dataprovider结构:
struct DataProvider {
var apiPath: String
var items: Array<CollectionItem>
var pagination: Pagination
}
然后我在班上创建了两个提供者:
let dataProvider1 = DataProvider(apiPath: "1", items: [], pagination: Pagination(currentPage: 1, totalPages: 1, itemsPerPage: 20))
let dataProvider2 = DataProvider(apiPath: "2", items: [], pagination: Pagination(currentPage: 1, totalPages: 1, itemsPerPage: 20) )
我希望能够将当前提供程序存储在变量中:
var currentDataProvider: DataProvider?
每次我分配变量时,它都会创建一个新的数据提供者
switch sender.selectedSegmentIndex {
case 0:
currentDataProvider = self.dataProvider1
case 1:
currentDataProvider = self.dataProvider2
default:
break;
}
答案 0 :(得分:2)
这就是struct
在Swift中的工作方式。 struct
传递按值,而class
传递按引用传递。如果您需要访问DataProvider
的同一个实例,请将其定义为class
。