2011-06-01 106 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