2017-02-27 37 views
-5
dataAdapter = MessagesDataAdapter() 
dataAdapter.listType = 1002 

我傳遞listType,這是一個整數值,我的課,但它始終是打印1001,而不是1002爲什麼財產始終採取默認值?

我幹了什麼錯在這裏做什麼?我不明白

class MessagesDataAdapter: NSObject{  
    var listType: Int = 1001 

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

回答

1

您在MessagesDataAdapter的初始化,當您創建dataAdapter被稱爲印刷listType。此後,您將該值設置爲1002。

0

原因是您在聲明變量時已經分配了值。 而你使用init()的方式並不會改變變量的值。

我會做的方式是創建如下:

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

你可以使用這個像這樣

dataAdapter = MessagesDataAdapter(listType: 1002) 
+0

'listType'不應該是可選的。 – Alexander

+0

它可以是,如果你的願望,但在這裏例子使用初始化設置listType的值 – OverD

+0

它不需要是可選的。 – Alexander