iPhone开发技巧之环境篇(6)--- 创建工程模板

来源:互联网 发布:mac intellij idea 编辑:程序博客网 时间:2024/05/28 19:24

经常用 Visual Studio 的朋友可能都熟悉该IDE中的向导模板,类似的项目工程都有固定的模式,框架,库结构等。在开发iPhone 的时候也可以自己定制这样的模板,提高我们的开发效率。

这一回就介绍一下创建模板的方法。

拷贝

iPhone应用程序的模板一般保存在下面的路径:

/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/Application

 

Xcode_template

首先拷贝这个文件夹到下面的路径,作为我们的基础模板。

~/Library/Application Support/Developer/Shared/Xcode/Project Templates/Application/

最后的目录名不一定是Application,可以起自己喜欢的名称,这将反映到Xcode中的建立新工程中。

定制

打开新目录中的 XCode 下面项目文件。按照自定需要的定制。比如包含 Utility 宏,修改plist中的 Bundle identifier 等。

创建新工程后 ___PROJECTNAME___ 和 ___PROJECTNAMEASIDENTIFIER____ 将被置换为项目的名称。

 

Xcode_template

完成后像下面这样子;

 

Xcode_template

例子

以下是几个定制的例子:

1. 定制 Window-Based Application
  • 定制原来模板中的 Window-Based Application 。
  • 删除新目录中的 MainWindow.xib 。
  • 删除 Info.plist 中的 Main nib file base name。
  • 删除 ___PROJECTNAME___.xcodeproj/project.pbxproj 中关于 MainWindow.xib 的记述。
  • 修改下面代码:
删除nib,xib文件的理由是定制不使用 Interface Builder 的模板。

 

123456789101112131415161718192021222324252627282930
// main.m// 定制前int retVal = UIApplicationMain(argc, argv, nil, nil);↓↓// 定制后int retVal = UIApplicationMain(argc, argv, nil, @"___PROJECTNAMEASIDENTIFIER___AppDelegate");// ___PROJECTNAMEASIDENTIFIER___AppDelegate.m// 定制前- (void)applicationDidFinishLaunching:(UIApplication *)application {    // Override point for customization after application launch    [window makeKeyAndVisible];}↓↓// 定制后- (void)applicationDidFinishLaunching:(UIApplication *)application {    UIWindow *w = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];    self.window = w;    [w release];    [window makeKeyAndVisible];}
2. 定制 View-Based Application
  • 定制原来模板中的 View-Based Application 。
  • 删除新目录中的 MainWindow.xib 。
  • 删除新目录中的 ___PROJECTNAMEASIDENTIFIER___ViewController.xib。
  • 删除 Info.plist 中的 Main nib file base name。
  • 删除 ___PROJECTNAME___.xcodeproj/project.pbxproj 中关于 MainWindow.xib 的记述。
  • 修改下面代码:
123456789101112131415161718192021222324252627282930313233343536373839
// main.m// 定制前int retVal = UIApplicationMain(argc, argv, nil, nil);↓↓// 定制后int retVal = UIApplicationMain(argc, argv, nil, @"___PROJECTNAMEASIDENTIFIER___AppDelegate");// ___PROJECTNAMEASIDENTIFIER___AppDelegate.m// 定制前- (void)applicationDidFinishLaunching:(UIApplication *)application {    // Override point for customization after application launch    [window addSubview:viewController.view];    [window makeKeyAndVisible];}↓↓// 定制后- (void)applicationDidFinishLaunching:(UIApplication *)application {    UIWindow *w = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];    self.window = w;    self.viewController = [[___PROJECTNAMEASIDENTIFIER___ViewController alloc] initWithNibName:nil bundle:nil];    [window addSubview:viewController.view];    [window makeKeyAndVisible];    [w release];}// ___PROJECTNAMEASIDENTIFIER___ViewController.m- (void)loadView {    UIView *contentView = [[UIView alloc] initWithFrame: [[UIScreen mainScreen] applicationFrame]];    contentView.backgroundColor = [UIColor whiteColor];    self.view = contentView;    [contentView release];}

以上只是很简单地举例说明模板的定制方法,你可以加强你的模板,比如包含常用的类库,风格控件等。

原创粉丝点击