2012-07-26 25 views
4

我正在經歷的發行說明的Xcode 4.4和注意到了這一點:新的Apple LLVM 4.0「默認合成」功能如何操作?

LLVM 4.0編譯器

的Xcode現在包括蘋果LLVM編譯器4.0版,其中包括以下newObjective-C語言功能:

  • 默認@synthesize:自動合成一個@property時未實現

我很好奇這個功能。它是如何工作的?我試圖通過刪除@synthesize,它不起作用。

+1

你能說說「不行」嗎? – 2012-07-26 17:44:06

回答

7

它確實有效,請確保在您的項目和目標設置中編譯器設置爲LLVM 4.0。然後,當你刪除@synthesize行時,你可以通過兩種方式訪問​​它:

通過訪問器與self.myProperty或通過相應的實例變量與_myProperty(是的,自動添加的底下欄)。

1

有很多情況下,它根本不工作。這些都概括爲例外這裏:

http://useyourloaf.com/blog/2012/08/01/property-synthesis-with-xcode-4-dot-4.html

,但最重要的,對我來說,被稱爲

表的讀寫性能使用非默認getter和setter

這意味着, ,除非你的屬性只是面向公衆的ivars,你需要包含@synthesize。或者換一種說法,如果你使用封裝並填充這些setter和getters,你就不能使用它。

後來注意:我不確定這裏指定的條件,但我發現有一個自動合成的ivar幾乎適用於我遇到的每種情況。