私はいつも@synthesize
.hファイルで宣言されたクラスプロパティでを使用してきました。ここにあるいくつかのAppleドキュメントでPhotoPickerの例に出くわし、本当に紛らわしい宣言を見つけました。AppDelegateクラス(.hファイル)では、次のようなivarは作成せず、プロパティのみを作成します。
#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
現在、ディレクティブやivarは見つかりませんが、dealloc
メソッドを見ると、いくつかの「見えない」ivarが解放されます(What ???)
- (void)dealloc
{
[_navController release];
[_window release];
[super dealloc];
}
また、viewControllerクラスでは、プロパティをnilに設定し、メソッドviewDidUnload
内の(作成されていない)「ivars」を解放しdealloc
ます。
これはいくつかの新しいXcodeのことと関係がありますか?誰かがこれに光を当てることができますか?私は自分のロジックをチェックしていてdidReceiveMemoryWarning
、常にプロパティをnilに設定しviewDidUnload
、ivarをリリースしてdealloc
いましたが、これは以前に見たことがありませんでした。
助けてくれてありがとう