我有一个消失的指针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的值。它是零,但我不知道为什么。谁能给我解释一下?