为什么财产总是采用默认值?

时间:2017-02-27 16:38:23

标签: swift

dataAdapter = MessagesDataAdapter()
dataAdapter.listType = 1002

我将listType传递给我的类,它是一个整数值,但总是打印1001而不是1002。

我在这里做错了什么?我无法理解

class MessagesDataAdapter: NSObject{    
    var listType: Int = 1001

    override init() {
    super.init()
    print(listType)
    }
 }

2 个答案:

答案 0 :(得分:1)

您正在listType的初始值设定项中打印MessagesDataAdapter,在创建dataAdapter时会调用该初始值设定项。之后您将值设置为1002.

答案 1 :(得分:0)

原因是您在声明变量时已经分配了值。 以及使用init()的方式,它不会改变变量的值。

我这样做的方法是按如下方式创建:

class MessagesDataAdapter: NSObject{    
    var listType: Int? // or var listType = 1001
   Init(listType: Int) {
    listType = listType
    Print(listType)
    }
 }

您可以像这样使用

dataAdapter = MessagesDataAdapter(listType: 1002)
相关问题