疯子的博客

做一件事,专注一件事
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新人,欢迎拍砖!

posted on 2011-06-13 21:31  老陈  阅读(854)  评论(0)    收藏  举报