2011-04-05 77 views
0

我在擺弄Apple的AVCamDemo。除了試圖解決所有這些問題之外,我遇到了一些我不明白的問題。AVFoundation - 財產申報 - 基本問題

屬性以非常奇怪的方式初始化,我沒有找到任何解釋。

在頭文件

AVCaptureSession *_session; 

... 

@property (nonatomic,readonly,retain) AVCaptureSession *session; 
中的.m文件

@synthesize session = _session; 

做什麼用下劃線故事

???

感謝您的任何澄清!

回答

2

基本上,你有兩件事情在這裏。一個ivar(實例變量)和屬性。

  • ivar是實際變量。
  • 該屬性是getter和setter的語法糖。

如果你

@synthesize session; 

伊娃和財產被假定爲有編譯器相同的名稱。

如果你

@synthesize session = _session; 

那麼屬性名稱是session和伊娃名字是_session。我的意見: 我一直在做可可超過十年。和@synthesize session = _session;是更安全的方式。編譯器或程序員偶爾會遇到困惑,因爲伊娃和這個屬性有相同的名字。

1

下劃線是一種命名約定,用於區分屬性和實例變量。

特別是,它有助於區分屬性的分配(自動減少並增加引用計數)和賦值實例變量(不包括自動引用計數更新)。

+0

感謝您的澄清! – Swissdude 2011-04-05 17:25:38