变量中的ios swift结构

时间:2014-08-13 18:38:15

标签: ios swift

尝试学习如何在类中使用结构。我有一个视图控制器,我希望能够从两个不同的源切换集合视图数据提供程序,所以我设置了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;
}

1 个答案:

答案 0 :(得分:2)

这就是struct在Swift中的工作方式。 struct传递按值,而class传递按引用传递。如果您需要访问DataProvider的同一个实例,请将其定义为class