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/