Analyze インストゥルメントを使用してメモリ リークを確認しようとしましたが、Xcode はこの時点でメモリ リークを表示します。
.h
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
.m
@synthesize managedObjectContext = __managedObjectContext;
次に、コードでこれを行います:
AppDelegate *appController = [[UIApplication sharedApplication] delegate];
self.managedObjectContext = [[NSManagedObjectContext alloc] init];
[self.managedObjectContext setUndoManager:nil];
[self.managedObjectContext setPersistentStoreCoordinator: [appController persistentStoreCoordinator]];
そしてdealloc
これで:
- (void)dealloc
{
[__managedObjectContext release];
[super dealloc];
}
次の行でメモリリークが発生します。
[self.managedObjectContext setUndoManager:nil];
このオブジェクトの場合:
self.managedObjectContext = [[NSManagedObjectContext alloc] init];
でリリースしましたがdealloc
、なぜそこでメモリ リークが発生するのですか?