详解iPhone应用程序事件处理及程序包结构


  本文标签:iPhone 事件 程序包

  iPhone应用程序事件处理及程序包结构是本文介绍的内容,主要介绍了详细讲解了 事件处理循环和iPhone程序包结构,先来详细讲解  。

  事件处理循环

  UIApplicationMain处理完程序初始化以后,他会开启时间出来循环和屏幕绘制循环  。过程如下图:

  事件处理循环

  当用户与iPhone设备交互时,iPhoneOS会检测触摸事件并把它放到事件队列中  。负责事件处理的UIApplication对象每次从队列顶部取出事件,并把它传递给最适合处理它的对象  。例如在按钮上的点击事件会被传递给相应的按钮对象  。时间也可以被传递给控制器或其他并非直接处理改事件的其他对象  。

  在iPhoneOS的Multi-Touch事件模型中,触摸数据被封装到单独的事件对象中(UIEvent).为了跟踪某个触摸,事件对象包含若干个触摸对象(UITouch),每一个触摸对象代表一个手指在屏幕上的触摸  。当用户将手指放到屏幕上,移动手指最终离开屏幕,系统会将每一个手指的变动提交给相应的触摸对象  。
   
当启动一个程序时,系统会为程序创建一个过程和一个单独的线程  。这个初始线程会变成程序的主线程  。UIApplication就在此启动主循环并配置程序的事件处理代码  。下图展示了事件处理代码和主线程之间的关系,如图:

  事件处理循环

  触摸事件被系统加入到队列末尾,直到它被程序的主循环处理  。

  iPhone程序包结构

  当build iPhone程序时,Xcode会将它打成一个包  。这个包是文件系统下的一个目录用于将相关资源放到一起  。一个iPhone程序包包括可执行程序和程序使用的各种资源(例如程序图标、其他图片和本地化资源等)  。下面我们逐个看一下iPhone程序包里到底有什么?

  MyApp

  盛放程序代码的可执行文件  。此文件的名称与工程的名称相同  。这个文件是必须的  。

  Settings.bundle

  Settings.bundle是一个像设置程序(Settings Application)添加设置选项的一组文件包  。这个文件包中包含有属性列表和其他用于设置和现实属性的资源  。

  Icon.png

  Icon.png是一张57*57的png图片,用于在iPhone的主界面上作为程序图标代表你的程序  。这张图片不需要有其他附加特效,系统会自动添加这些效果  。此文件是必须的  。

  Icon-Setting.png

  Icon-Setting.png是一张29*29的png图片,用于在设置程序中作为图标代表你的程序  。如果你的程序有Settings.bundle,这个图标将会显示在程序名的旁边  。如果你没有设置这张图片,系统会将Icon.png缩放来代替  。

  MainWindow.nib

  MainWindow.nib保存在程序启动时需要加载的默认的界面对象  。一般来说,MainWindow.nib保存着程序主窗口对象和程序的代理对象的实例  。其他界面对象要么从别的.nib文件载入,要么通过代码编程实现  。

  Default.png

  Default.png是一张480*320的png图片用于在程序启动时显示  。启动时,系统会用这张图片作为临时背景,直到程序载入了他的窗口和用户界面  。

  iTunesArtwork

  这是一个512*512的图标用于那些用ad-hoc方式发售的程序  。一般来说,这个图标由App Store提供;因为通过ad-hoc方式分销的软件不通过App Store,但它必须在程序保重显示  。iTunes用这个图标来显示你的软件  。(这张图片必须与提交给App Store的图片(jpg或png格式)相同  。文件名必须为iTunesArtwork,并且不能有后缀  。)

  Info.plist

  Info.plist是程序的信息属性列表  。这个文件用键-值的形式定义了程序的属性,例如Bundle ID、版本号、显示名称等  。

  其他资源文件

  非本地化资源放在包的最上层  。程序可以任意使用非本地化资源,不管用户选择的语言  。

  *.lproj语言目录

  本地化资源被放到一个以ISO639-1语言所写,以.lproj为后缀的目录中(例如en.proj, fr.proj保存着与英语和法语相关的本地化资源)  。

  小结:详解iPhone应用程序事件处理及程序包结构的内容介绍完了,希望通过本文的学习能对你有所帮助!