在XCode 4中,当您创建一个新的View-base-application项目时,这里是AppDelegate的.h:
#import <UIKit/UIKit.h>
@class TestAppleProjectViewController;
@interface TestAppleProjectAppDelegate : NSObject <UIApplicationDelegate> {
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet TestAppleProjectViewController *viewController;
@end
.m上的一些项目:
@implementation TestAppleProjectAppDelegate
@synthesize window=_window;
@synthesize viewController=_viewController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
我可以看到没有变量的属性......
我可以看到使用类中不存在的var名称进行合成...
我可以看到对这些属性的调用....
但是......变量在哪里? 为什么这样的代码有效? 是否不再需要在类中定义变量?属性是否足够?
答案 0 :(得分:2)
实际上,当您将var声明为属性时,您不必再将其声明为var。我们不得不再次声明它的先前版本是以前版本的Xcode中的一个错误。现在它已得到纠正。
这只是一个习惯,更少的代码重复,这是好的。 (默认情况下,它创建了隐藏的var,其名称以“_”开头)。
答案 1 :(得分:1)
我不确定这个......我想当你写@synthesize prop=_var
时,它会自动为属性prop创建一个名为_var的私有实例变量。