2014-04-13 19 views
19

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?
+2

Đọ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

Trả lời

18

Nếu có một URL trong launchOptions và bạn quay lại NO, sau đó hệ điều hành sẽ biết rằng bạn không thể mở các URL được cung cấp cho một số lý do.

Nó không được sử dụng cho bất cứ điều gì khác. Vì thường không có URL nào trong số launchOptions thường không quan trọng bạn trả lại cái gì.

Vì vậy, chỉ cần trả lại YES. Bạn có thể đọc thêm trong tài liệu của Apple here.

Các vấn đề liên quan