Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
变量中的ios swift结构_Ios_Swift - Fatal编程技术网

变量中的ios swift结构

变量中的ios swift结构,ios,swift,Ios,Swift,尝试学习如何在类中使用结构。我有一个视图控制器,在其中我希望能够从两个不同的源切换集合视图数据提供程序,因此我将dataprovider struct设置为: struct DataProvider { var apiPath: String var items: Array<CollectionItem> var pagination: Pagination } 我希望能够将当前提供程序存储在变量中: var currentDataProvider: Da

尝试学习如何在类中使用结构。我有一个视图控制器,在其中我希望能够从两个不同的源切换集合视图数据提供程序,因此我将dataprovider struct设置为:

struct DataProvider {
    var apiPath: String
    var items: Array<CollectionItem>
    var pagination: Pagination
}
我希望能够将当前提供程序存储在变量中:

var currentDataProvider: DataProvider?
但每次我分配变量时,它都会创建一个新的数据提供程序

switch sender.selectedSegmentIndex {
    case 0:
        currentDataProvider = self.dataProvider1
    case 1:
        currentDataProvider = self.dataProvider2
    default:
        break;
}

这就是
struct
s在Swift中的工作方式
struct
通过值传递,而
class
通过引用传递。如果需要访问相同的
数据提供程序实例
,请将其定义为

switch sender.selectedSegmentIndex {
    case 0:
        currentDataProvider = self.dataProvider1
    case 1:
        currentDataProvider = self.dataProvider2
    default:
        break;
}