xcode在新建新的工程的时候会默认生成一份代码,例如新建一个c++工程,其初始的代码如下:

  1. #include <iostream>
  2.  
  3. int main(int argc, const char * argv[]) {
  4. // insert code here...
  5. std::cout << "Hello, World!\n";
  6. return ;
  7. }

这本无可厚非,当我们第一次用c++的时候非常友好的代码。Hello World! 只是当写算法题需要大量新建工程时,我们可能希望面对的不是这样一份几乎没用的代码,我们希望的是能够已经写了足够多的库文件或者一些初始注释
啥的。因此此时我们就需要来修改这个初始的文件。

我们找到这个文件的位置: /Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/Project Templates/Mac/Application/Command Line Tool.xctemplate/TemplateInfo.plist

语言类似html风格,我们找到我们需要修改的地方进行修改就好了。主要注意的是它用的是html的语法,因此例如 < > " & 等字符需要转义 例如< 变成> 等等。

最后说一下,上面的几个//的注释不在这个文件里修改。不过也在附近的文件里。如果你觉得看着这个初始的注释信息不顺眼也可以自己去探寻修改一下。

以及xcode更新的时候这个文件可能又会变成初始,因此改完之后最好备份一下。就酱~

另附我修改后的源文件:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3. <plist version="1.0">
  4. <dict>
  5. <key>Kind</key>
  6. <string>Xcode.Xcode3.ProjectTemplateUnitKind</string>
  7. <key>Identifier</key>
  8. <string>com.apple.dt.unit.commandLineTool</string>
  9. <key>Ancestors</key>
  10. <array>
  11. <string>com.apple.dt.unit.base</string>
  12. <string>com.apple.dt.unit.osxBase</string>
  13. </array>
  14. <key>Concrete</key>
  15. <true/>
  16. <key>SortOrder</key>
  17. <integer>50</integer>
  18. <key>Description</key>
  19. <string>This template creates a command-line tool.</string>
  20. <key>Targets</key>
  21. <array>
  22. <dict>
  23. <key>ProductType</key>
  24. <string>com.apple.product-type.tool</string>
  25. <key>TargetIdentifier</key>
  26. <string>com.apple.dt.commandLineToolTarget</string>
  27. <key>BuildPhases</key>
  28. <array>
  29. <dict>
  30. <key>Class</key>
  31. <string>Sources</string>
  32. </dict>
  33. <dict>
  34. <key>Class</key>
  35. <string>Frameworks</string>
  36. </dict>
  37. <dict>
  38. <key>Class</key>
  39. <string>CopyFiles</string>
  40. <key>DstPath</key>
  41. <string>/usr/share/man/man1/</string>
  42. <key>DstSubfolderSpec</key>
  43. <string>0</string>
  44. <key>RunOnlyForDeploymentPostprocessing</key>
  45. <string>YES</string>
  46. </dict>
  47. </array>
  48. </dict>
  49. </array>
  50. <key>Options</key>
  51. <array>
  52. <dict>
  53. <key>Identifier</key>
  54. <string>commandLineType</string>
  55. <key>Name</key>
  56. <string>Language:</string>
  57. <key>Description</key>
  58. <string>The primary implementation language for the command-line tool</string>
  59. <key>Default</key>
  60. <string>Swift</string>
  61. <key>Type</key>
  62. <string>popup</string>
  63. <key>Values</key>
  64. <array>
  65. <string>Swift</string>
  66. <string>Objective-C</string>
  67. <string>C++</string>
  68. <string>C</string>
  69. </array>
  70. <key>Units</key>
  71. <dict>
  72. <key>C</key>
  73. <dict>
  74. <key>Nodes</key>
  75. <array>
  76. <string>main.c:comments</string>
  77. <string>main.c:include</string>
  78. <string>main.c:main:content</string>
  79. </array>
  80. <key>Definitions</key>
  81. <dict>
  82. <key>main.c:include</key>
  83. <string>#include <stdio.h>
  84. </string>
  85. <key>main.c:main:content</key>
  86. <string>// insert code here...
  87. printf("Hello, World!\n");
  88. return 0;
  89. </string>
  90. </dict>
  91. </dict>
  92. <key>C++</key>
  93. <dict>
  94. <key>Nodes</key>
  95. <array>
  96. <string>main.cpp:comments</string>
  97. <string>main.cpp:include</string>
  98. <string>main.cpp:main:content</string>
  99. </array>
  100. <key>Definitions</key>
  101. <dict>
  102. <key>main.cpp:include</key>
  103. <string>#include <iostream>
  104. #include <cstdio>
  105. #include <cstring>
  106. #include <string>
  107. #include <map>
  108. #include <iostream>
  109. #include <cmath>
  110. #include <vector>
  111. #include <set>
  112. #include <algorithm>
  113. #include <queue>
  114.  
  115. typedef long long ll;
  116. #define rep(i,a,b) for (int i = (a); i <= (b); ++i)
  117. #define rep2(i,a,b) for (int i = (a); i >= (b); --i)
  118.  
  119. using namespace std;
  120.  
  121. const int N = 10010;
  122. int ans, n , m, a[N];
  123.  
  124. </string>
  125. <key>main.cpp:main:content</key>
  126. <string>
  127. cin >> n >> m;
  128. rep (i, 1, n){
  129. scanf("%d",&a[i]);
  130. }
  131.  
  132. ans = 0;
  133.  
  134. cout << ans << endl;
  135. </string>
  136. </dict>
  137. </dict>
  138. <key>Objective-C</key>
  139. <dict>
  140. <key>Nodes</key>
  141. <array>
  142. <string>main.m:comments</string>
  143. <string>main.m:include</string>
  144. <string>main.m:main:content</string>
  145. </array>
  146. <key>Definitions</key>
  147. <dict>
  148. <key>main.m:include</key>
  149. <string>#import <Foundation/Foundation.h>
  150. </string>
  151. <key>main.m:main:content</key>
  152. <string>@autoreleasepool {
  153. // insert code here...
  154. NSLog(@"Hello, World!");
  155. }
  156. return 0;
  157. </string>
  158. </dict>
  159. </dict>
  160. <key>Swift</key>
  161. <dict>
  162. <key>Project</key>
  163. <dict>
  164. <key>Configurations</key>
  165. <dict>
  166. <key>Debug</key>
  167. <dict>
  168. <key>SWIFT_OPTIMIZATION_LEVEL</key>
  169. <string>-Onone</string>
  170. </dict>
  171. </dict>
  172. </dict>
  173. <key>Targets</key>
  174. <array>
  175. <dict>
  176. <key>SharedSettings</key>
  177. <dict>
  178. <key>SWIFT_VERSION</key>
  179. <string>___DEFAULTTOOLCHAINSWIFTVERSION___</string>
  180. </dict>
  181. </dict>
  182. </array>
  183. <key>Nodes</key>
  184. <array>
  185. <string>main.swift:comments</string>
  186. <string>main.swift:include</string>
  187. <string>main.swift:main:content</string>
  188. </array>
  189. <key>Definitions</key>
  190. <dict>
  191. <key>main.swift:include</key>
  192. <string>import Foundation
  193. </string>
  194. <key>main.swift:main</key>
  195. <dict>
  196. <key>Beginning</key>
  197. <string></string>
  198. <key>End</key>
  199. <string></string>
  200. </dict>
  201. <key>main.swift:main:content</key>
  202. <string>print("Hello, World!")
  203. </string>
  204. </dict>
  205. </dict>
  206. </dict>
  207. </dict>
  208. </array>
  209. <key>Definitions</key>
  210. <dict>
  211. <key>*:main</key>
  212. <dict>
  213. <key>Beginning</key>
  214. <string>int main() {</string>
  215. <key>End</key>
  216. <string>}</string>
  217. <key>Indent</key>
  218. <integer>1</integer>
  219. </dict>
  220. </dict>
  221. </dict>
  222. </plist>

 

修改xcode初始生成代码的更多相关文章

  1. 设置 Xcode 自动生成代码片段

    一.什么是代码片段 当在Xcode中输入dowhile并回车后,Xcode会出现下图所示的提示代码: 这就是代码片段,目的是使程序员以最快的速度输入常用的代码片段,提高编程效率.该功能是从Xcode4 ...

  2. xcode自动生成代码片段

    一.什么是代码片段 当在Xcode中输入dowhile并回车后,Xcode会出现下图所示的提示代码: 这就是代码片段,目的是使程序员以最快的速度输入常用的代码片段,提高编程效率.该功能是从Xcode4 ...

  3. 使用storyboard显示UITableView时,如果不修改系统默认生成的tableView:cellForRowAtIndexPath:方法中的代码,则必须为UITableViewCell注册(填写)重用标识符:identifier.必须要代码方法中的标识符一致.

    CHENYILONG Blog 使用storyboard显示UITableView时,如果不修改系统默认生成的tableView:cellForRowAtIndexPath:方法中的代码,则必须为UI ...

  4. EA修改生成代码的表头注释

    我们在做项目的过程中,每个代码文件都应有此文件的注释,比如说作者,文件说明等.但是如果用EA生成的代码文件的注释是纯英文的,而且有些不是我们需要显示的注释,有些我们需要显示的它又不具备.那么我们就可以 ...

  5. python之gui-tkinter可视化编辑界面 自动生成代码

    首先提供资源链接 http://pan.baidu.com/s/1kVLOrIn#list/path=%2F

  6. 使用Mybatis Generator自动生成代码

    MyBatis Generator(MBG)是MyBatis MyBatis 和iBATIS的代码生成器.它将为所有版本的MyBatis以及版本2.2.0之后的iBATIS版本生成代码.它将内省数据库 ...

  7. mybatis Generator生成代码及使用方式

    本文原创,转载请注明:http://www.cnblogs.com/fengzheng/p/5889312.html 为什么要有mybatis mybatis 是一个 Java 的 ORM 框架,OR ...

  8. 动态生成一个设定好特殊样式的Tlabel,快速生成代码

    动态生成一个设定好特殊样式的Tlabel,快速生成代码: 1.自己先在可视化界面设定一个Label,像这样: 2.选择label,快捷键ctrl+C 复制,粘贴带代码编辑器去,会生成一段这样的窗体代码 ...

  9. MyBatis自动生成代码示例

    在项目中使用到mybatis时,都会选择自动生成实体类,Mapper,SqlMap这三个东东. 手头上在用的又不方便,找了下网上,其实有很多文章,但有些引用外部文件时不成功,也不方便,所以重新整理了下 ...

随机推荐

  1. Chrome浏览器 54 版本显示“Adobe flash player已过期”问题解决

    背景 电脑上面的软件很久没升级,用腾讯电脑管家批量做了一次升级,结果Chrome浏览器升级到54版本flash控件没法用了. 第一时间想到直接到flash官网下载一个新的进行安装,结果官网检测显示,C ...

  2. 【RequireJS】requireJS的基础知识

    1. requirejs的优点 1)异步加载依赖的文件 2)管理文件加载顺序 3)管理文件加载的包路径 2. requirejs下载地点 https://github.com/jrburke/requ ...

  3. 关于JavaScript组件化的探索

    Loaders 先放出项目地址:https://github.com/j20041426/Loaders 这是一个可以动态选择加载动画的样式和颜色的插件.这个项目仅仅是作为对js组件化的一个探索,不太 ...

  4. word2vec原理(一) CBOW与Skip-Gram模型基础

    word2vec原理(一) CBOW与Skip-Gram模型基础 word2vec原理(二) 基于Hierarchical Softmax的模型 word2vec原理(三) 基于Negative Sa ...

  5. Python爬虫番外篇之关于登录

    常见的登录方式有以下两种: 查看登录页面,csrf,cookie;授权:cookie 直接发送post请求,获取cookie 上面只是简单的描述,下面是详细的针对两种登录方式的时候爬虫的处理方法 第一 ...

  6. 最小生成树详解 prim+ kruskal代码模板

    最小生成树概念: 一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边. 最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里 ...

  7. Fliptile 翻格子游戏[Usaco2007 Open]

    题目描述 Farmer John knows that an intellectually satisfied cow is a happy cow who will give more milk. ...

  8. Spring @Transactional 使用

    Spring @Transactional是Spring提供的一个声明式事务,对代码的侵入性比较小,只需考虑业务逻辑,不需要把事务和业务搞混在一起. @Transactional 可以注解在inter ...

  9. 应届毕业生如何通过学习Linux系统选择一份高薪职业

    2017年全国高校毕业生人数795万,史上"更难就业季"大学生就业形势,再加上出国留学回来的约30万以及没有找到工作的往届毕业生,预计将有1000多万大学生同时竞争. 如果我们不是 ...

  10. 高性能MySQL之【第十五章 备份与恢复】学习记录

      我们不打算包括的话题:      安全(访问备份,恢复数据的权限,文件是否需要加密)      备份存储在哪里,包括他们应该离源数据多远,以及如何将数据从源头移动到目的地      保留策略.审计 ...