ポインターdbが消えています。の作成中に値が適切に設定されていますがNSDocument
、サブウィンドウを開こうとした瞬間に、値がnil
!に変更されました。NSDocument
サブクラスに次のものがあります。
@interface MW_Document : NSDocument
{
MW_WorkerWindowController *workerController;
__strong MW_db *db;
}
- (IBAction)showWorkerManagementPanel:(id)sender;
//- (IBAction)showSkillManagementPanel:(id)sender;
実装にはこれが含まれます:
- (void)windowControllerDidLoadNib:(NSWindowController *)aController
{
[super windowControllerDidLoadNib:aController];
if (![self db]) {
db = [[MW_db alloc] init];
NSLog ( @"Debug - Init of db: [%ld]", db ); // never mind the casting problem
}
}
dbは、真のアドレスである nil 以外を指しています。
NSDocument
後で、ウィンドウを開いて、これを同じサブクラスの実装に入れたいと思います。
- (IBAction)showWorkerManagementWindow:(id)sender
{
if ( !workerController) {
workerController = [[MW_WorkerWindowController alloc] initWithDb:db];
}
[workerController showWindow:self];
}
最初の行にブレークポイントを置き、dbの値を確認します。ゼロですが、理由がわかりません。誰かが私にこれを説明できますか?