私はいつも@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いましたが、これは以前に見たことがありませんでした。
助けてくれてありがとう