如果主要功能永远不会在iOS中返回,为什么还要返回任何内容?

时间:2013-05-25 23:07:02

标签: ios objective-c

#import <UIKit/UIKit.h>
#import "WhereamiAppDelegate.h"

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([WhereamiAppDelegate class]));
    }
}

仔细检查UIApplicationMain函数后,它会声明“尽管声明了返回类型,但此函数永远不会返回”

为什么main尝试从此函数返回整数值,如果它永远不会返回?

1 个答案:

答案 0 :(得分:12)

Objective C标准基于C标准。 C标准明确禁止返回main的{​​{1}}。只允许这两个签名:

void

为了符合此标准,必须将int main() int main(int argc, char **argv) 声明为返回整数。返回值无关紧要,但必须存在(C99标准允许省略main中的return语句。

由于main永远不会返回,因此以下内容也是有效的:

UIApplicationMain