ich die Automagic von @UIApplicationMain
versuchen zu verstehen, und wie der Beginn eines iOS-App in Bezug auf Java zu visualisieren:Ist dieses Java eine gute Annäherung an die Funktionsweise von @UIApplicationMain in Swift?
public class UIApplication extends UIResponder implements Runnable {
final UIApplicationDelegate appDel;
public UIApplication(UIApplicationDelegate appDel) {
this.appDel = appDel;
}
public static void main(String[] args) {
try {
UIApplication app = new UIApplication(new AppDelegate());
handThisReferenceToOperatingSystem(app);
iOSdoesSomethingLikeThis(new Thread(app).start());
} catch(Exception e) { e.printStackTrace(); }
}
public void run() {
// chill-out and wait for iOS to invoke methods in UIResponder class.
// The UIResponder methods invoke my custom methods in AppDelegate.
}
public static class AppDelegate implements UIApplicationDelegate {
public void application(Object UIApplication) { // app specific behaviour
}
public void applicationWillResignActive(Object UIApplication) { // app specific behaviour
}
public void applicationDidEnterBackground(Object UIApplication) { // app specific behaviour
}
public void applicationWillEnterForeground(Object UIApplication) { // app specific behaviour
}
public void applicationDidBecomeActive(Object UIApplication) { // app specific behaviour
}
public void applicationWillTerminate(Object UIApplication) { // app specific behaviour
}
// maybe more methods from the UIApplicationDelegate
}
public interface UIApplicationDelegate {
void application(Object UIApplication);
void applicationWillResignActive(Object UIApplication);
void applicationDidEnterBackground(Object UIApplication);
void applicationWillEnterForeground(Object UIApplication);
void applicationDidBecomeActive(Object UIApplication);
void applicationWillTerminate(Object UIApplication);
// maybe some more methods ....
}
}
public class UIResponder {
void fingerSwipe() { // default implementation
}
void verticalMotion() { // default implementation
}
// more methods iOS might invoke
}
Also im Grunde macht das @UIApplicationMain
Attribut auf die AppDelegate Klasse Anwendung aller andere Code weggehen, oder?
Wenn ich abstrakt über Software denke und über "was ist los" denke ich in Java. Ich kann Ihre Referenz sehen, aber es "klickt" nicht, weil ich mit anderen Sprachen nicht vertraut bin. –
Es erstellt nur die 'public static void main (String [] args)' für Sie und übergibt Ihr 'AppDelegate' an die' UIApplicationMain', welche die Framework-Klasse ist, die die App startet und Ihren Delegaten an bestimmten Punkten aufruft. –