关于swift中AppDelegage.swift文件的疑问

c语言中,程序是从main函数开始执行的,swift中并没有找到类似的main函数一样的东西,程序好像是从AppDelegate.swift中开始的,但是不明白是怎么运行的,希望小伙伴们能指点一二(ps:没学过oc,希望不要从oc的角度解释=。=)
还有,委托模式又是个什么东西-。-

一只甜甜圈
浏览 1143回答 2
2回答

慕村9548890

控制反转(IoC): 不是你从main()开始写代码然后调用lib, 而是framework调用你写的代码. 作为进程入口的main()仍然存在, 但是是在框架里定义的, 不用你来写.委托, 就是"把任务转交给别的class, 由别的class承担". 一个framework不能把所有行为写死, 总有些行为要由app开发者来定义. 你定义一个实现了特定protocol的class然后传进去, framework就会在需要的时候("app启动了" "收到Notification了")调用你的AppDelegate来处理.

桃花长相依

说起来有点长。先说Delegate,这是一个OO中的概念,调用一个对象的成员函数在OO中的术语是给这个对象发送消息,对象接收到一个消息时可以选择自己处理掉,或者将这个消息转发给另外一个对象,转发到的那个对象就被称之为delegate。Cocoa程序在启动的时候,runtime会给每个app创建一个NSApplication对象实例,NSApplication对象会接收到Cocoa框架发送来的一些消息,比如告诉它程序已经启动或者用户想要退出等,但NSApplication对象并不亲自处理这个消息,因为每个程序拥有的NSApplication对象都是一样的,但每个程序对于这些消息的处理方式却不一样,所以NSApplication对象让你指定一个Delegate对象来处理这些消息,以得到你想要的结果。AppDelegate.swift中定义了一个class,这个class的实例对象就是这个程序中NSApplication的delegate。这个实例对象的创建是由Cocoa框架做的。当然你可以在一个程序里建立不止一个NSApplicationDelegate的子类,也可以创建不止一个NSApplicationDelegate对象,但你的App里定义了一个xib文件,这个xib文件中指定了Cocoa到底应该创建哪个类的实例作为全局NSApplication对象的delegate。
打开App,查看更多内容
随时随地看视频慕课网APP