2014-07-10 74 views
-1

之間有什麼區別:瞭解IOS和Objective-C @property

@interface PhotoAppViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate> 
{ 
    UIImageView * imageView; 
    UIButton * choosePhotoBtn; 
    UIButton * takePhotoBtn; 
} 

@property (nonatomic, retain) IBOutlet UIImageView * imageView; 
@property (nonatomic, retain) IBOutlet UIButton * choosePhotoBtn; 
@property (nonatomic, retain) IBOutlet UIButton * takePhotoBtn; 

這:

@interface PhotoAppViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate> 

@property (nonatomic, retain) IBOutlet UIImageView * imageView; 
@property (nonatomic, retain) IBOutlet UIButton * choosePhotoBtn; 
@property (nonatomic, retain) IBOutlet UIButton * takePhotoBtn; 

什麼花括號後面的代表團之後是什麼意思?

+0

重複的答案是非常有幫助的 – cdub

回答

1

「花括號」是instance variables(也稱爲ivars)的定義範圍。屬性是可以公開訪問的變量(即其他類),而實例變量是私有的,只能在類的實現本身的範圍內訪問。

閱讀thisthis瞭解屬性和ivars之間的差異。

我強烈建議您閱讀Apple關於Objective-C的文檔,或者如果前者對您的口味過於技術性,那麼您可以閱讀關於同一主題的好書。

+0

'實例變量是私有的,可以在類的實施範圍只訪問itself'其實這是錯誤的。事實上,在接口文件中聲明的實例變量可以從任何類訪問,沒有任何私有的ObjC –

+0

。它完全暴露。 –

+0

不,@Anil,ivars默認爲_protected_ - 只有類本身或子類可以訪問它們。必須在界面中明確聲明「@ public」才能被其他類訪問。合成的ivars或在實現塊中聲明的那些只能由類本身使用。 –