2016-08-10 6 views
0

Я пытаюсь понять Automagic из @UIApplicationMain и как визуализировать начало в приложение IOS с точки зрения Java:Является ли эта Java хорошим приближением того, как @UIApplicationMain работает в 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 
} 

Так в основном, применяя атрибут @UIApplicationMain к класса AppDelegate делает все другие код уходит, правда?

ответ

0

Заканчивать этот ответ: https://stackoverflow.com/a/24516329/335974

суть в том, что он создает файл main.m найденных в проектах Objective-C:

int main(int argc, char *argv[]) { 
    @autoreleasepool { 
     NSString *appDelegateClassName = @"AppDelegate"; 

     return UIApplicationMain(argc, argv, nil, appDelegateClassName); 
    } 
} 

Таким образом, ваш код Java выглядит как на стадионах, что происходит.

+0

Когда я думаю абстрактно о программном обеспечении и о том, «что происходит», я думаю на Java. Я вижу вашу ссылку, но она не «нажимает», потому что я не знаком с другими языками. –

+0

Он просто создает 'public static void main (String [] args)' для вас и передает ваш 'AppDelegate' в' UIApplicationMain', который является классом framework, который запускает приложение и вызывает вашего делегата в определенных точках. –