iPhone的开发现在大家还是在摸索的阶段,当然不排除有人已经进阶。
现在就简单得介绍一下默认创建的工程的分析。
开发环境:Mac OS X10.5, XCode
实例代码:默认项目
创建默认项目后,就可以进行 build,然后就可以在模拟器上运行,那么,这个最基本的程序的启动与执行流程
是什么样子的呢,那么现在来分析一下
1、程序入口点
创建的项目中,在XCode 的 Other Classes中,有一个 main.m的文件,入口点就在这里,
方法: int main(int argc, char * argv[]) 就是整个程序的入口,和 C语言一样
2、主程序设置
main方法中有一个 UIApplicationMain(xx, xx, xx, xx,); 这个方法调用,关键就在这里,其中最后一个
参数的意义就是 DelegateClass,这个就是指定的代理类的名称,代理的意思就是,执行这个方法后,
系统会装载指定的类,并且执行相应的方法,进入循环中。
3、代理类 Delegate
代理类 基本上名称是 XXXAppDelegate,其中需要定义
- (void)applicationDidFinishLaunching:(UIApplication *)application 方法,该方法的含义是,当系统装载完成
程序时,执行该方法操作
4、applicationDidFinishLaunching 装载 显示界面
创建 Window, 装载 MyView,创建并显示
5、MyView 自定义 View,如果使用 Interface Builder 进行设计的话该默认文件几乎无用,以下介绍自定义View
-(void)init 方法,重载该方法,可以进行各种属性设置
-(void)drawRect:(CGRect)rect 方法,这个类似于 J2ME 中 Canvas的 paint方法,在该方法内部可以进行绘制操作
6、完毕,以下为 MyView.m 代码,仅供参考
//
// MyView.m
// Cat
//
// Created by 张 霄鹤 on 09-2-2.
// Copyright FiveRats 2009. All rights reserved.
//
#import "MyView.h"
@implementation MyView
- (void) init{
str="Hello World";
self.backgroundColor = [UIColor grayColor]; // 通过 UIColor提供的方法,可以直接获取颜色
// self.backgroundColor 属性 进行背景色设置
// **** backgroundColor 属性不能再 drawRect中设置
}
- (void)drawRect:(CGRect)rect{
CGContextRef cg = UIGraphicsGetCurrentContext();
UIFont * font = [UIFont systemFontOfSize:18.0];
// CGContextSetRGBFillColor(cg, 1.0, 1.0, 0.7, 1.0);
// CGContextFillRect(cg,rect);
CGContextSelectFont(cg, [[font fontName] cStringUsingEncoding:NSASCIIStringEncoding], 18.0, kCGEncodingMacRoman);
CGContextShowText(cg,str,strlen(str));
}
@end