仔细阅读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
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,否则会有内存泄露。
完毕!

1418

被折叠的 条评论
为什么被折叠?



