2012-10-16 48 views
11

在.h文件中,有什麼區別:IOS接口伊娃VS物業

@interface ViewController : UIViewController 
@property (strong, nonatomic) UIView* myView; 

而且

@interface ViewController : UIViewController{ 
    UIView* myView; 
} 
+0

不使用強**的myView **它會創建一個保留週期 去[參考這裏](https://stackoverflow.com/a/11013715/3030400) –

回答

5

主要區別在於@property對其他對象可見,並且可以通過這些對象使用類的實例進行訪問。

您可以在您的實現文件中使用@synthesize來在您的實現中自動定義deterterterter函數。

更新(以下@格雷厄姆李的建議)

根據能見度符爲你的實例變量(@protected/@private/@public),伊娃可以在您的實現中使用文件,子類或其他類。隱式值是@protected,所以在您的示例中,它將對您的實現文件和子類可見。

+3

沒有可見性修飾符的實例變量 - 就像這個問題中的那個 - 隱含地是'@ protected'。遠不能從其他對象訪問,它們可以用在聲明類的任何子類中。 – 2012-10-16 12:22:28

14

第一種是屬性的聲明,而第二隻伊娃。 屬性是自動聲明一個吸氣劑和一個伊娃的設置者,但如果沒有伊娃(就像你的第一個例子),該屬性也會創建伊娃。

+0

短而精確..!完善..!! – Shradha