IOS开发基础之──main函数及预编译前缀头文件

一、main函数介绍

如果你熟悉 C 或类似的编程语言,你可能在“Other Sources”中认出应用程序 的起始程序 main.m。

Main.m 任何在主函数和HelloWorldAppDelegate类之间做的处理,属于iPhone SDK的后台魔法,你没有控制的权限。因为你几乎不需要改变main.m,所以你可以忽略 它。不过,看一看也无妨。

简单点说,主函数创建了一个NSAutoreleasePool(自动释放池),然后调用 UIApplicationMain启动程序,程序使用HelloWorldAppDelegate类来执行 UIApplicationDelegate的协议(protocol)。

int main(int argc, char *argv[]) {

 NSAutoreleasePool *pool = [NSAutoreleasePool new];

 int retVal = UIApplicationMain(argc, argv, nil, @"HelloWorldAppDelegate");

 [pool release]; 

 return retVal;

}

上述代码中使用了一个NSAutoreleasePool来帮助你管理内存。说的简单一点就 是通过使用autorelease(自动释放)信息,你不再需要担心忘记发送释放信息。 Autorelease pool(自动释放池)可以确保内存中的自动释放对象最终会被释 放。


二、预编译前缀头文件

“HelloWorld_prefix.pch”头文件的作用是给编译过程加速。你应该把不常变 化的框架(Frameworks)头文件添加到前缀头文件(prefix header)中。这样 的话,在编译的时候,框架的代码会被预先编译,所有的类都将可以使用这些 头文件。不幸的是,这样做也有一个缺点:如果前缀头文件里其中一个头文件 发生了变化,你的所有代码将会重新编译。这就是为什么你应该只添加那些极 少或者从来都不变化的头文件到前缀头文件中。


例如,就像我在列表2-1中所做的那样,cocos2d.h头文件可以被添加到前缀头 文件中,因为它很少改变。不过,只有复杂一些的项目才会感受到编译速度的

变化。不过,即使只为了不再需要在其他源代码里写 #import “cocos2d.h”, 也是值得一开始就在前缀头文件里写进 cocos2d.h 的。


列表2-1:把cocos2d.h头文件加到前缀头文件中

#ifdef __OBJC__

#import <Foundation/Foundation.h> #import <UIKit/UIKit.h> #import "cocos2d.h"

#endif


如果你想了解更多关于如何使用前缀头文件减少编译时间的知识,可以参考苹

果开发者文档:

http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/XcodeBuildSystem/800-Reducing_Build_Times/bs_speed_up_build.html



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值