#import <UIKit/UIKit.h>
#import "WhereamiAppDelegate.h"
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([WhereamiAppDelegate class]));
}
}
仔细检查UIApplicationMain函数后,它会声明“尽管声明了返回类型,但此函数永远不会返回”
为什么main尝试从此函数返回整数值,如果它永远不会返回?
答案 0 :(得分:12)
Objective C标准基于C标准。 C标准明确禁止返回main
的{{1}}。只允许这两个签名:
void
为了符合此标准,必须将int main()
int main(int argc, char **argv)
声明为返回整数。返回值无关紧要,但必须存在(C99标准允许省略main
中的return
语句。
由于main
永远不会返回,因此以下内容也是有效的:
UIApplicationMain