#import <UIKit/UIKit.h>
#import "WhereamiAppDelegate.h"
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([WhereamiAppDelegate class]));
}
}
仔细检查 UIApplicationMain 函数后,它指出“尽管声明了返回类型,但此函数永远不会返回”
如果 main 从不返回,为什么要尝试从此函数返回整数值?
最佳答案
Objective C 标准基于 C 标准。 C 标准明确禁止返回 void
的 main
。只允许这两个签名:
int main()
int main(int argc, char **argv)
为了符合这个标准,main
必须被声明为返回一个整数。返回值无关紧要,但必须存在(C99 标准允许省略 main
中的 return
语句)。
由于 UIApplicationMain
永远不会返回,因此以下内容也是有效的:
int main(int argc, char *argv[])
{
@autoreleasepool {
UIApplicationMain(argc, argv, nil, NSStringFromClass([WhereamiAppDelegate class]));
}
// This line is never reached, and C99 standard allows omitting it,
// so you can safely remove the return statement below:
return 0;
}
关于ios - 如果在 iOS 中 main 函数永远不会返回,那为什么还要返回任何东西呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16754722/