IOS应用程序的结构

来源:互联网 发布:算法谜题 中文版 pdf 编辑:程序博客网 时间:2024/05/17 14:16

IOS应用程序的结构


UIButton 基于UIControl类
UIButton 缺省是圆角按扭
UIview 中的tag属性 唯一标示一个

main.m 的作用 首先他为应用程序创建了一个自动释放池,其次他调用程序事件循环。每次事件循环结束后自动释放池就将一条释放消息发送到他所拥有的所有对象。

UIApplicationMain 函数


为创建新的应用程序对象提供主入口,它创建新的应用程序和委托。

他还建立应用程序的事件循环。事件循环重复地寻找低层次的用户交互。


委托负责处理应用程序的状态更新,并为那些变更 提供特定的程序响应。


例如你可以构建方法,确定当用户将屏幕从纵向模式变为横向模式后应用程序该如何调整,或者当在屏幕上手指滑动式,视图该如何更新,这种风格的编程是基于底层事件循环的,事件循环在main.m中设置。



应用程序委托

应用程序委托实现在应用程序生命周期的关键点上,程序该如何做出反应。委托负责在启动时初始化一个窗口系统,并在结束时包装业务。它还在处理内存警告时扮演关键角色。


applicationDidFinishLaunching: 方法该方法是应用程序对象实例化后,程序中首先被触发的方法。启动时可以在该方法中创建基本窗口,设置它的内容,并让他成为应用程序的关键响应者。


applicationwillTerminate: 方法通过该方法,可以在将控制权交回SpringBorder之前,处理任何状态终止。可以在该方法中保存默认设置,更新数据和关闭文件。


applicationDidReceiveMemoryWarning 调用该方法时应用程序必须尽最大可能地去释放内存。该方法与UIViewController的didReceiveMemory Warning 方法密切配合。如果应用程序不能释放足够的内存,iPhone将终止它使用户迅速回到SpringBorder。SpringBorder是主iPhone GUI,它现实应用程序图标,允许用户启动程序。


当应用程序挂起或是恢复时,例如用户锁住屏幕,应用程序委托还负责进行相应的处理。


启动和加载窗口后,应用程序退居幕后。几乎所有应用程序语义都要转到UIViewController类的某个子类。应用程序委托通常不再发挥作用,除非应用程序简要结束,或者出现内存问题。






视图控制器



视图控制器是控制应用程序如何运行的核心。通常是在视图控制器中实现应用程序如何响应选择,按下按钮以及触发感应器等动作。如果之前没有使用Interface Builder创建预定义的展示,那么可以在视图控制器中加载和布局视图。main.m和应用程序委托通常较小,但是视图控制器源代码通常较大,它定义应用程序访问资源和对用户做出响应的所方式。以下是其中的关键方法:



laodView 和viewDidLoad方法 假设不是有XIB文件对视图布局,那么loadView 方法必须设置屏幕,并对任何子视图布局。每当继承一个具体的类,例如UITableViewcontroller 或是UITabBarController时,务必调用[super loadView] 或者实现viewLoad。这样以来,在进行定制之前,父类可以对屏幕进行适当地设置。当代码基于具体的子类时,苹果的文档和具体代码鼓励使用viewLoad。


shouldAutorotateToInterfaceOrientation :方法。除非有充足的理由使用户保持纵向模式,否则应添加should-autorotate方法,以允许UIViewController方法自动使屏幕与iPhone的方向匹配。此外还必须定义屏幕元素应该如何更新。


viewWillAppear:和viewDidAppear:方法每当视图准备在屏幕上显示,或者视图已在屏幕上完全显示,将调用这两个方法。viewWillAppear:方法准备显示的视图信息。调用时,视图可能还没有加载。如果依赖于访问连接到子视图的IBOutlets,那么要调用self.view 以确保视图层次被加载。使用viewDidAppear:来触发视图完全显示在屏幕上之后的行为,例如任何动画。



XIB文件的数量和种类取决于如何设计项目。



Info.plist文件是向操作系统描述应用程序的XML属性列表。属性;列表存储各种不同的键值对,并且可以保存为可读的基于文本的格式或经过压缩的二进制文件。



图标和默认图像



Icon.png和Default.png是两个重要的图像文件。Icon.png 充当应用程序的图标,这些图标用于在SpringBorder主屏幕上表示应用程序。Default.png(也称启动图像) 提供应用程序启动时显示的初始屏幕。


官方应用程序的图标大小为57*57像素




沙盒机制




应用程序可以在自己的沙盒中运行,但是不能访问除此之外的任何沙盒


不能共享玩具:不能共享数据(除了通过用户控制的系统粘贴板),


不能弄乱办公室:文件必须位于沙盒提供的文件夹中,并且不能将文件复制到其他应用程序的文件中,或从其他应用程序文件夹中复制文件。


不得越过笆篱向外张望。任何读写沙盒之外的尝试都将被App store 拒绝,ios 禁止应用程序将内容写到沙盒外的大多数文件夹中。


应用程序拥有自己的Library、Document和/tmp文件夹。





MVC编程规范


模型:此方法通过数据源和数据含意之类的协议提供数据,需实现由控制器触发的回调函数。


视图: 视图组件由UIView类的子类提供,并与其相关的UIViewController类辅助


控制器 : 控制器行为通过3种关键技术实现:委托,目标操作和通知。





委托 :


许多UIKit类都使用委托交出响应用户交互操作的责任。在设置某个对象的委托时,便是让对象将任何交互信息传递出去,让该委托处理这些事务。