我注意到在Xcode的最新版本中默认使用ARC,当你启动一个新项目时,Xcode为你生成的main.m文件NSStringFromClass([AppDelegate class])用作UIApplicationMain中app代理的参数而不仅仅是@"AppDelegate"或者甚至只是nil
新方法:
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
Run Code Online (Sandbox Code Playgroud)
旧方式:
@autoreleasepool {
int retVal = UIApplicationMain(argc, argv, nil, nil);
return retVal;
}
Run Code Online (Sandbox Code Playgroud)
我只是想知道这是否有原因?这对我来说似乎有点做作,但我希望能够直截了当.
Sul*_*han 10
这是一个汇编检查.如果可以在编译时检查参数,那就更好了.如果它只是一个字符串,则无法检查.
关于nil论点,文件说:
如果从应用程序的主nib文件加载委托对象,请指定nil.
假设您正在使用xib文件来声明应用程序委托的类.好吧,很多项目都没有.通常,没有xib文件的项目模板(例如"空应用程序")无法使用nil.