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
如果你熟悉 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
相关文章推荐
- IOS开发基础之──main函数及预编译前缀头文件
- iOS Dev (65) 预编译前缀头文件 Prefix.pch
- iOS开发UI篇—核心动画(基础动画)
- Objective-C ,ios,iphone开发基础:http第三方库 ASIHttpRequest简介
- iOS开发UI基础—手写控件,frame,center和bounds属性
- IOS开发基础知识--碎片整理
- iOS开发笔记系列-基础2(类)
- ios-cocos2d游戏开发基础-CCLayer和Touch事件-开发笔记
- iOS逆向开发基础工具
- ios app开发属性设置基础教程
- iOS开发基础知识--碎片20
- 【备忘】 iOS开发UI基础 UI高级开发(完整)视频下载
- 【C语言】零基础iOS开发学习笔记(1)
- iOS开发UI基础—20UITableviewcell的性能优化和缓存机制
- iOS开发基础知识--碎片25
- iOS开发基础知识--碎片27
- iOS开发-为我们的项目添加头文件prefix header
- Objective-C ,ios,iphone开发基础:快速实现一个简单的图片查看器
- iOS开发零基础教程之程序开发调试技巧