您的位置:首页 > 移动开发 > IOS开发

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

2011-07-20 14:19 323 查看
一、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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: