通常我们有这样的代码
@interface TestAppDelegate : NSObject <UIApplicationDelegate> {
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@synthesize window;
还有第二个版本
@interface TestAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *_window;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@synthesize window = _window;
队列
- 有什么大不同?哪个更好?为什么?
- 对于第一个版本,为什么窗口的默认属性成员是什么,在第二个版本中是_window。 KVC或KVO是否在内部工作?
答案 0 :(得分:1)
在默认情况下,它与
相同@interface TestAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@synthesize window = window;
实际上不需要在合成上进行分配。并且可能会产生错误。
这是我这样做的正常方式。
@interface TestAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@synthesize window;
我明确声明了实例变量
UIWindow *window;
所以我知道它在那里,(它们通常都在彼此旁边。)
我将它们与我保留的那些以及我没有的那些分开。所以我知道在我的dealloc方法中释放它们