了解iphone程序架构

 

仔细阅读iPhone Application Programming Guide,对入门会有很大的帮助。

我认为应该抱着下列疑问去阅读

1,iphone平台的是怎样的?

2,iphone程序在平台上是怎样运行的?

3,iphone开发SDK提供怎样的核心功能?

4,iphone程序架构是怎样的?

5,了解iphoneSDK中常用的组件和各组件的特点。

 

【1】了解同一时间只能有一个程序在运行,如果你的程序在运行过程中有电话打进来,那么你的程序会自动退出。

【2】仔细阅读iPhone Application Programming Guide后,从sample的Hello World开始吧

首先要熟悉xcode和xcode包含的InterfaceBuilder(界面设计的工具,用过VC或者VS2005的人应该很清楚)

Hello World工程中的MainWindow.xib和HelloWorld.xib就是类似于资源文件,里面定义了界面和框架,其实不难发现这些文件都是xml格式的文件。HelloWorld.xcodeproj是工程文件,双击它就可以打开工程。Info.pList文件是工程的配置文件。

进到classes文件夹下面后,看到HelloWorldAppDelegate.h,HelloWorldAppDelegate.m,MyViewController.h,MyViewController.m

这种文件几乎是必须的。

创建新的工程的时候,会自动生成对应的HelloWorldAppDelegate类,这里面有程序的入口

- (void)applicationDidFinishLaunching:(UIApplication *)application

【3】Window  View Controller Delegate

iphone程序只有一个window,其他的所有的view都在这个window上,可以说window是其他所有view的包容器。

window对应的类是UIWindow。

通过看文档,可以发现所有的类都从NSObject继承而来,UIWindow也是从UIView继承来,将来用的最多的也是UIView和UIViewController

了解iphone程序架构 - 记忆的回放 - 记忆的回放的博客

 

ViewController可以包含view,可以在viewcontroller上面创建一些列的view,然后viewcontroller可以控制它上面的所有view,可以说它是管理和控制view的,View controllers also provide automatic responses for some standard system behaviors。

delegate的问题解释起来很麻烦,在应用中慢慢感受吧。

 

【4】Hello World的入口函数

- (void)applicationDidFinishLaunching:(UIApplication *)application {
 
 // Set up the view controller

//解释下这个地方,这里是从HelloWorld.xib中加载MyViewController类,这个类和HelloWorld.xib关联在一起。

//我个人通常不用这种方式,通常是用动态创建的方式

//例如:MyViewController* aViewController = [[UIViewController alloc]  init];,这就创建好了一个空

//的viewcontroller,可以从UIViewController继承下来,重写一个自定义的类MyViewController,然后

//在MyViewController 中实现你要实现的内容,比如说创建几个view。
 MyViewController *aViewController = [[MyViewController alloc] initWithNibName:@"HelloWorld" bundle:[NSBundle mainBundle]];
 self.myViewController = aViewController;
 [aViewController release];
    
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque];
 
 // Add the view controller's view as a subview of the window
 UIView *controllersView = [myViewController view];

//将viewcontroller的view放置到window上面。然后以后所有的功能将在viewcontroller和它的view上面实现。
 [window addSubview:controllersView];
 [window makeKeyAndVisible];
}

【5】对应的程序结束时执行的函数

- (void)applicationWillTerminate:(UIApplication *)application

在这里保存你要保存的所有数据,不要在这里做太费时间的事情,因为程序退出时有时间限制,超过20秒就不好了,有可能发生一些数据丢失的问题。同样程序启动时也不要做太浪费时间的事情。

【6】viewcontroller

一般我们常常会在函数- (void)viewDidLoad 里面做一些初始化,创建view等的操作。

在- (void)dealloc 里面对申请的对象进行释放。

alloc和retain的,一定要做相应的release,否则会有内存泄露。

完毕!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值