2014-04-13 19 views
19

Bei der Entwicklung für iOS ist der erste Einstiegspunkt für Ihre App der -[AppDelegate application:didFinishLaunchingWithOptions:]. Der Rückgabetyp dieser Methode ist BOOL. Standardmäßig ist der Rückgabetyp dieser Methode YES. Hier ist der Code, der automatisch von Xcode generiert wird.Rückgabetyp der -Anwendung: 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; 
} 

Wie Sie sehen können, stellt Xcode in der return-Anweisung für Sie, mit dem Wert von YES. Wenn ich den Wert der return-Anweisung in NO ändere und nichts anderes ändere, passiert nichts. Die App wird nicht beendet oder zeigt ein ungewöhnliches Verhalten. Dies wirft die Frage auf, Was ist der Zweck der Methode, die eine BOOL zurückgibt, wenn der zurückgegebene Wert keine Rolle spielt? Wenn der zurückgegebene Wert keine Rolle spielt, warum gibt die Methode nicht einfach void zurück?
Hinweis: Einige meiner Erwartungen nach der Rückkehr in NO Wechsel wurden entweder

  • Anwendung startet nicht, weil es die „Erlaubnis“ nicht erhalten (NO zurückgegeben)
  • Entweder Compiler-Warnung erzeugt, oder Fehler wird zur Laufzeit ausgelöst.
    Warum ist es so, dass keine dieser Dinge passieren?
+2

Lesen Sie die gesamte Dokumentation zur 'application: didFinishLaunchingWithOptions:' Methode. Der Rückgabewert wird dort erklärt. – rmaddy

Antwort

18

Wenn eine URL in launchOptions ist und Sie kehren NO, dann wird das Betriebssystem weiß, dass Sie nicht die angegebene URL aus irgendeinem Grunde öffnen können.

Es ist nicht für etwas anderes verwendet. Da es normalerweise keine URL in launchOptions gibt, ist es normalerweise egal, was Sie zurückgeben.

So einfach zurück YES. Sie können mehr in der Apple-Dokumentation here lesen.

Verwandte Themen