2015-07-20 84 views
0

蘋果的類型屬性SWIFT文檔指出:需要澄清的雨燕類型屬性

「對於值類型(即結構和枚舉),你可以定義存儲和計算的類型屬性對於類,你可以定義計算。只鍵入屬性「。

本段的措辭令人困惑。所以,我可以定義存儲和計算的類型屬性在結構和枚舉,但我只能定義計算類型屬性在班?

struct SomeStructure { 
    static var storedTypeProperty = "Some value." 
    static var computedTypeProperty: Int { 
    // return an Int value here 
    } 
} 

enum SomeEnumeration { 
static var storedTypeProperty = "Some value." 
static var computedTypeProperty: Int { 
// return an Int value here 
} 
} 

class SomeClass { 
    static var storedTypeProperty = "Some value." 
    static var computedTypeProperty: Int { 
    // return an Int value here 
    } 
    class var overrideableComputedTypeProperty: Int { 
    // return an Int value here 
    } 
} 

回答

1

在你的榜樣,在課堂上存儲的屬性是static屬性:因爲蘋果給了他們一個類中定義存儲和計算的性能一個例子,這將是奇怪的。但是您會注意到該類中沒有存儲屬性,它是class屬性;這是不支持的:

class SomeClass { 
    static var storedTypeProperty = "Some value." 
    static var computedTypeProperty: Int { 
    // return an Int value here 
    } 
    // class var overrideableStoredTypeProperty = "Some value." // NO 
    class var overrideableComputedTypeProperty: Int { 
    // return an Int value here 
    } 
} 
+0

更清楚的是,'class var storedClassProperty =「Some Value」'不會編譯。它產生'類存儲的屬性尚未支持類; 「 – nhgrif

+0

@nhgrif NO意味着沒有:) – matt

+0

@nhgrif我希望他們不要再戲弄我們那個」還沒有「...... – matt