При разработке для iOS первой точкой входа для вашего приложения является -[AppDelegate application:didFinishLaunchingWithOptions:]
. Возвращаемым типом этого метода является BOOL
. По умолчанию возвращаемым типом этого метода является YES
. Вот код, который автоматически генерируется Xcode.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
Как вы можете видеть, Xcode помещает в оператор return для вас значение со значением YES
. Когда я изменяю значение оператора return на NO
и ничего не меняю, ничего не происходит. Приложение не прекращает работу или не показывает какого-либо необычного поведения. Это задает вопрос, , какова цель метода, возвращающего BOOL, когда возвращаемое значение не имеет значения? Если возвращаемое значение не имеет значения, почему метод не возвращает void?
Примечание. Некоторые из моих ожиданий после изменения возврата на NO
были либо
- Приложение не запускается, потому что оно не получает "разрешение" (возвращается
NO
) - Любой компилятор генерирует предупреждение, или ошибка возникает во время выполнения.
Почему это так: ни одна из этих вещей не происходит?