在一个简单的测试应用程序中,它启动并建立一个窗口,但从未到达类中的init。调试器控制台位于:Running… (gdb)
UntitledAppDelegate.m
或.h
在NSObject类中,“无标题”init
在untitled.h中声明,在无标题中声明。我有
@implementation untitled
- (id)init {
if (self = [super init])
{
int i=1;
i=i++;
NSLog(@"%i here",i);
}
return self;
}
@end
UntitledAppDelegate.m中的断点显示它到达最后一个}。
Xcode设置为3.2,OSX 10.6和垃圾收集。
没有错误或警告;它运行。,
为什么不运行init,我该如何解决?
答案 0 :(得分:2)
您是否曾为该类的任何实例调用init? 您应该在代码中的某处:
untitled *myObj = [[untitled alloc] init];
如果没有,那么这就是为什么不调用它的原因。
答案 1 :(得分:0)
我向所有浪费时间查看我的骨头错误结果的人道歉 几个组合,但主要是我意识到那些作者正在使用带有initWithFrame的NSView类,它在启动时运行,就像它应该没有添加到UntitledAppDelegate一样。
我还没弄清楚为什么NSObject类中的简单init不会在启动时运行。
- (id)init {
if (self = [super init]) {
NSLog(@"Foo");
}
return self;
}
答案 2 :(得分:0)
untitled *object = [untitled new];