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


调试控制器

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

@interface DebugController : NSObject {

}
- (void)sendDebug;
@end


调试控制器

#import "DebugController.h"

@implementation DebugController

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

@end

最佳答案

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

关于cocoa - 从另一个 Controller 调用函数,为什么不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5570655/

10-12 18:31