2011-07-04 56 views
0

當創建在Xcode 4新出口進入像通常必要的代碼,但它前綴一個_在頭文件接口(但不是在屬性):創建連接_

UINavigationController *_mainNavController; 
UIViewController *_rootView; 

它也做到這一點的實現文件:

@synthesize mainNavController = _mainNavController; 
@synthesize rootView = _rootView; 

雖然我當然可以用前綴_使用它們,它只是讓我的代碼雜亂。我在做可怕的錯誤嗎?

非常感謝提前。

回答

2

我當然可以用 作爲前綴_。

爲什麼不直接使用你的屬性(如self.mainNavController)而不是後備ivars?

閱讀蘋果公司對此有什麼看法using accessor methods

有時可能變得單調乏味或 迂腐,但是如果你使用訪問 方法一致的 有問題的內存管理 大幅下降的可能性。如果你是 在整個代碼中使用保留和釋放實例 變量,那麼你的 幾乎肯定會做錯誤的 的事情。

屬性封裝內存管理代碼,從而減少樣板。

唯一的地方,你不應該使用 存取方法來設置實例變量 在init方法和 dealloc

另外,使用_前綴後備ivars的約定會阻止您直接錯誤地訪問後備ivars(並且無法保留對象)。

+0

哦,它現在有道理!非常感謝你。 – GarethPrice

+0

@GarethPrice不客氣:) – albertamg