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新人,欢迎拍砖!
浙公网安备 33010602011771号