从另一个控制器调用函数,为什么不起作用?

时间:2011-04-06 17:41:10

标签: cocoa nsobject

AppController.h

#import <Cocoa/Cocoa.h>
#import "DebugController.h"

@class DebugController;
@interface AppController : NSObject {
    DebugController * controller;
}

@end

AppController.m

#import "AppController.h"

@implementation AppController

-(void)awakeFromNib {
    NSLog(@"awake");
    [controller sendDebug];

}
@end

DebugController.h

#import <Cocoa/Cocoa.h>
#import "AppController.h"

@interface DebugController : NSObject {

}
- (void)sendDebug;
@end

DebugController.m

#import "DebugController.h"

@implementation DebugController

- (void)sendDebug {
    NSLog(@"debug"); // no logs.
}

@end

1 个答案:

答案 0 :(得分:3)

您没有初始化调试控制器(controller),这意味着它最初是nil(作为它的实例变量)。向nil发送邮件是合法的,但没有任何反应。您必须首先初始化您的调试控制器ivar。