Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3003620
  • 博文数量: 523
  • 博客积分: 11908
  • 博客等级: 上将
  • 技术积分: 5475
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-03 15:50
文章分类

全部博文(523)

文章存档

2019年(3)

2013年(4)

2012年(71)

2011年(78)

2010年(57)

2009年(310)

分类: 嵌入式

2012-01-19 15:03:37

经常用 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 的模板。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// 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 的记述。
  • 修改下面代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// 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];
}

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

阅读(1702) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~