iphone xcode项目运行流程

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)applicationDidFinishLaunchingUIApplication *)application 方法,该方法的含义是,当系统装载完成 程序时,执行该方法操作 

4applicationDidFinishLaunching 装载 显示界面 创建 Window, 装载 MyView,创建并显示 

5MyView 自定义 View,如果使用 Interface Builder 进行设计的话该默认文件几乎无用,以下介绍自定义View -(void)init 方法,重载该方法,可以进行各种属性设置 -(void)drawRectCGRect)rect 方法,这个类似于 J2ME Canvas paint方法,在该方法内部可以进行绘制操作 

6、完毕




如果需要界面重绘事件,可以使用 函数  OnTimer

-(void) onTimer {
	float x = fireBall.center.x;
	float y = fireBall.center.y;
	fireBall.center = CGPointMake(fireBall.center.x + pos.x, fireBall.center.y + pos.y);
	
	if (fireBall.center.x > 320 || fireBall.center.x < 0)
		pos.x = -pos.x;
	if (fireBall.center.y > 460 || fireBall.center.y < 0)
		pos.y = -pos.y;
	
	UIImageView* imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"smokeball.png"]];
	imageView.frame = CGRectMake(x-16, y-16, 32, 32);
	[self.view addSubview:imageView];
	[UIView beginAnimations:nil context:imageView];
	[UIView setAnimationDuration:3.0];
	[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
	imageView.frame = CGRectMake(x-6, y-6, 12, 12);
	[imageView setAlpha:0.0];
	[UIView setAnimationDelegate:self];
	[UIView setAnimationDidStopSelector:@selector(removeSmoke:finished:context:)];
	[UIView commitAnimations];	
	[imageView release];
	
	[self.view bringSubviewToFront:fireBall];

}


之后再在  viewDidLoad 里面调用就是了


 - (void)viewDidLoad {
	 pos = CGPointMake(15.0, 7.5);
	 self.view.backgroundColor = [UIColor blackColor];
	 fireBall = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"fireball.png"]];
	 fireBall.frame = CGRectMake(0, 0, 32, 32);
	 [self.view addSubview:fireBall];
	 [NSTimer scheduledTimerWithTimeInterval:(0.05) target:self selector:@selector(onTimer) userInfo:nil repeats:YES];
 }




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值