我一直使用@synthesize
.h 文件中声明的类属性。我在此处找到的一些 Apple 文档中遇到了PhotoPicker示例,并发现了一个非常令人困惑的声明。在他们的 AppDelegate 类(.h 文件)中,他们不创建任何 ivars,只创建属性,如下所示:
#import <UIKit/UIKit.h>
@interface AppDelegate : NSObject <UIApplicationDelegate>
@property (nonatomic, retain) IBOutlet UIWindow *window;
@end
在他们的 Appdelegate.m 文件中,他们这样写:
#import "AppDelegate.h"
@interface AppDelegate ()
@property (nonatomic, retain) IBOutlet UINavigationController *navController;
@end
@implementation AppDelegate;
现在,我没有找到任何@synthesize
指令或任何 ivars,但是如果我查看dealloc
他们发布一些“不可见”的 ivars 的方法(什么???)
- (void)dealloc
{
[_navController release];
[_window release];
[super dealloc];
}
在 viewController 类中,他们将属性设置为 nilviewDidUnload
并在方法中释放(非创建的)“ivars” dealloc
。
这是否与一些新的 Xcode 事物有关?有人可以对此有所了解吗?我正在检查我的逻辑,didReceiveMemoryWarning
并且总是将属性设置为 nilviewDidUnload
并释放 ivars,dealloc
但我以前从未见过。
提前感谢您的帮助