iPhone-пример кода Apple по умолчанию, в котором отсутствуют некоторые vars?


В XCode 4, Когда вы создаете новый проект View-base-application, вот .h из AppDelegate:

#import <UIKit/UIKit.h>

@class TestAppleProjectViewController;

@interface TestAppleProjectAppDelegate : NSObject <UIApplicationDelegate> {

}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet TestAppleProjectViewController *viewController;

@end

И некоторые пункты на .М:

@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;
    }

Я могу видеть свойства без vars...
Я вижу синтезировать с именами var, которые не существуют в классе...
Я вижу звонки на эти объекты....

Но... Где же Вары ?
Почему такой код работает ?
Там нет необходимости, чтобы определить Варс в класс ? Достаточно ли свойств ?

2 2

2 ответа:

Фактически, когда вы объявляете var как свойство, вам не нужно объявлять его снова как var. Предыдущая компиляция, где мы должны были объявить его снова, была ошибкой в предыдущих версиях Xcode. И теперь это исправлено.

Это просто привычка брать, меньше дублировать код, и это хорошо. (По умолчанию создается AH hidden var с тем же именем, начинающимся на"_").

Я в этом не уверен... Я думаю, что при написании @synthesize prop=_var он автоматически создаст переменную частного экземпляра с именем _var для Prop property.