我似乎无法让我的appdelegate被调用。使用断点甚至看起来不像第一个被称为断点。
这就是我在main.m中的内容
int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegatename");
[pool release];
return retVal;
}
答案 0 :(得分:2)
请说AppDelegate
为MyAppDelegate
,在MyAppDelegate.h
和MyAppDelegate.m
中定义。
试试这个:
#import <UIKit/UIKit.h>
#import "MyAppDelegate.h"
int main(int argc, char *argv[])
{
@autoreleasepool
{
return UIApplicationMain(argc, argv, nil, NSStringFromClass([MyAppDelegate class]));
}
}
编辑:这是支持ARC的应用程序的当前功能。如果您不使用ARC,您应该考虑取消它。如果您坚持使用非ARC方法,那么只需更换您的线路:
int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegatename");
与
int retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([MyAppDelegate class]));
在这两种情况下,您都必须使用应用程序委托类的真实名称替换MyAppDelegate
。
EDIT2:
根据你的附加命令,你的main.m应该是这样的:
#import <UIKit/UIKit.h>
#import "Radio99AppDelegate.h"
int main(int argc, char *argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
return UIApplicationMain(argc, argv, nil, NSStringFromClass([Radio99AppDelegate class]));
[pool release];
return retVal;
}
我不确定你是使用radio99AppDelegate还是Radio99AppDelegate - 最后一个是'标准'。如果这是一个新项目,那么考虑将其“翻译”到ARC是明智的。对内存管理的麻烦要少得多。
答案 1 :(得分:1)
int retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
答案 2 :(得分:0)
我正在将旧版应用迁移到iOS 9.2并遇到了这个问题。在我的main方法中,我必须传递AppDelegate的类名作为principalClassName参数以及UIApplicationMain的delegateClassName参数。
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, NSStringFromClass([AppDelegate class]), NSStringFromClass([AppDelegate class]));
}
}