频道栏目
读书频道 > 移动开发 > 其他综合 > iOS 5 cocos2d 游戏开发实战(第2版)
2.2.3 支持文件
2012-10-17 14:54:13     我来说两句
收藏   我要投稿
《iOS 5 cocos2d游戏开发实战(第2版)》将引导您开发富有吸引力的2D游戏。书中展示了如何使用cocos2d这款强大的游戏引擎来开发iPhone和iPad游戏,此外还介绍了游戏中的瓦片地图、虚拟摇杆、Game Center等。本书...  立即去当当网订购

如果你熟悉用C或类似语言进行编程,那么应该能认出Supporting Files中的main.m文件,它表示应用程序的开始。该组中仅有的另一个文件是预编译的头文件Prefix.pch。

1. main.m文件

发生在main函数和HelloWorldAppDelegate类之间的所有事情都是由iOS SDK自行处理的,不受程序员控制。因为几乎不用对main.m进行修改,所以可以放心跳过这里的内容。当然,多学一点知识也无妨。

简单来说,main函数创建了NSAutoreleasePool,之后调用了UIApplicationMain来启动应用程序。其中,HelloWorldAppDelegate用作实现UIApplicationDelegate协议的类。

int main(int argc, char *argv[])
{
NSAutoreleasePool *pool = [NSAutoreleasePool new];
int retVal = UIApplicationMain(argc, argv, nil,  
@"HelloWorldAppDelegate");
[pool release];
return retVal;
}
实际上,每个iOS 应用程序都使用NSAutoreleasePool来帮助管理内存。简单来说,通过向对象发送自动释放消息,就不必再为何时向它们发送释放消息而烦恼了。自动释放池保证所有被自动释放的对象最终都会从内存中释放。如果你不明白我在说些什么也没有关系,稍后我会在本章中介绍cocos2d中的内存管理机制。

也可以通过Apple’s Memory Management Programming Guide了解关于自动释放池的更
多信息:http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/MemoryMgmt/ Articles/mmAutoreleasePools.html。

2.  预编译前缀头文件

Prefix.pch是一个用于加快编译速度的工具。只有永远不会变化或很少发生变化的头文件才能被添加到前缀头文件中。这样做可以使框架的代码提前被编译,并对所有类可见。但是,如果添加到前缀头文件中的头文件发生了变化,那么所有代码会被重新编译,这也是为什么只能向前缀头文件中添加不变的头文件的原因。

正如程序清单2-1中所示,cocos2d.h头文件是非常适合被添加到前缀头文件中的,因为它几乎不会改变。当项目比较复杂时,编译速度会有比较显著的提升(当然,也不必拿出秒表来测量)。但是,一开始就将cocos2d.h添加到前缀头文件中是一个非常好的习惯,这样在其他源文件中就不必再写语句#import "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/Xcode- BuildSystem/800-Reducing_Build_Times/bs_speed_up_build.html。

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2.2.2 资源
下一篇:2.2.4 HelloWorld类
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站