Khi phát triển cho iOS, điểm nhập đầu tiên cho ứng dụng của bạn là -[AppDelegate application:didFinishLaunchingWithOptions:]
. Kiểu trả về của phương thức này là BOOL
. Theo mặc định, kiểu trả về của phương thức này là YES
. Đây là mã được tạo tự động bởi Xcode.Loại trả về của ứng dụng: didFinishLaunchingWithOptions:
- (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;
}
Như bạn thấy, Xcode đặt trong báo cáo trả lại cho bạn, với giá trị YES
. Khi tôi thay đổi giá trị của câu lệnh trả về thành NO
và không thay đổi bất kỳ điều gì khác, không có gì xảy ra. Ứng dụng không thoát hoặc hiển thị bất kỳ hành vi bất thường nào. Điều này đặt ra câu hỏi, mục đích của phương thức trả lại BOOL là gì, khi giá trị trả về không quan trọng? Nếu giá trị trả lại không quan trọng, tại sao phương thức này không trả lại giá trị rỗng?
Lưu ý: Một số mong đợi của tôi sau khi thay đổi trở lại NO
được một trong hai
- ứng dụng không khởi động bởi vì nó không nhận được "phép" (
NO
được trả lại) - Hoặc biên dịch tạo ra cảnh báo, hoặc lỗi được tăng lên khi chạy.
Tại sao trường hợp không phải những điều này xảy ra?
Đọc tất cả tài liệu cho phương thức 'application: didFinishLaunchingWithOptions:'. Giá trị trả về được giải thích ở đó. – rmaddy