详谈Cocoa程序启动过程是本文要介绍的内容,首先,我们的程序运行的时候是对象之间的相互作用,而不是类之间的作用。
新建一个helloword的cocoa程序,可以在xib中找到下面几个对象:
file's Owner:xib文件的加载者
firsrt responder :消息链中第一个能响应相应消息的对象。
application :nsApplication的一个实例。
main menu:nsmenu的一个实例。
window app delegate:application的委托实例
font manager:nsFontManager的一个实例。
1、程序启动,从mian开始,实例化一个nsapplication。
2、application加载mainmenu.xib,它怎么知道要加载这个sib文件而不是别的呢?这个其实是在info.plist文件中指定的。
3、application加载完这个文件后就成了mainmemu.xib的File'Owner。
4、nsApplication有个delegate的Outlet,用以指定它的委托对象
5、application实例在加载这个xib文件的过程中会调用window app delegate中的方法。
6、applcation加载xib文件后会根据文件的内容实例化里面其他的类,创建窗口,试图等。进入消息循环。
7、firsrt responder 是消息链中第一个能响应相应消息的对象,它不是具体指哪个对象,如用户单机一个“复制”菜单,如果当前焦点在编辑框中则第一个能响应“复制”这个消息的可能是编辑框,而如果当前在浏览器中,则第一个能响应该消息的是浏览器视图对象。
小结:详谈Cocoa程序启动过程的内容介绍完了,希望本文对你有所帮助!