2011-06-01 127 views
2


它們之間有什麼區別: -頭文件中的聲明

方法1: -

@interface EffortView : UIView { 

}  
@property (nonatomic, retain) UIView *homeView;  
@end 

方法2: -

@interface EffortView : UIView { 
    UIView *homeView; 
}  
@property (nonatomic, retain) UIView *homeView;  
@end 

我已經合成的性質這兩種情況。他們兩個都有效。我在Mac 10.6.6上使用Xcode 4.0

請賜教。

謝謝大家。

+0

nice one @socialCircus .. – Krishnabhadra 2011-06-01 08:45:48

回答

3

第一種方法不適用於32位Mac OS X運行時,因爲每個屬性都必須具有相應的實例變量。 64位和iOS運行時自動爲您創建實例變量,因此在這種情況下,使用第二種方法就足夠了。

底線是:如果您100%確定您不會定位32位Mac OS X系統,並且您的軟件的組件都不會在該平臺上使用,那麼您可以放心地省略實例變量。

+0

你的意思是Mac 10.6.6上的Xcode 4.0使用64位運行時?哪個版本的Xcode和Mac有32位運行時? – SocialCircus 2011-06-01 08:54:40

+0

不;它使用32位,64位或iOS運行庫,具體取決於您編譯項目的內容。由於您正在編譯您的iPhone項目,因此您正在使用iOS運行時,因此上述代碼將起作用。如果您正在編譯用於64位Intel處理器的項目,那麼您使用的是64位Mac OS X運行時,因此上述代碼也可以使用。但是,如果您正在爲32位英特爾處理器編譯和/或針對Mac OS X 10.4及更早版本的系統,那麼您將使用32位Mac OS X運行時,並且上述代碼不起作用。 – 2011-06-01 08:58:14