博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
善用#waring,#pragma mark 标记
阅读量:4965 次
发布时间:2019-06-12

本文共 1631 字,大约阅读时间需要 5 分钟。

  在项目开发中,我们不可能对着需求一口气将代码都写好。开发过程中肯定遇到诸如需求变动,业务逻辑沟通,运行环境的切换等这些问题。当项目大的时候,如果木有形成统一的代码规范,在项目交接和开发人员沟通上将会带来很大的麻烦。

  #pragma mark -

  这个标记在iOS开发中用得最多了。其实最主要的是用来进行标记的,当然也有注释的作用在里面。当然我们也可以用//,/* */等常用注释来说明。但是用#pragma mark -不同的是可以将整个文件的函数以类似分组的形式展现。当我们点击Xcode 导航栏上面的文件后面的列表时将会得到如图所示的界面:

这样当其他开发者查看此文件时,可以清晰的看到整个函数分布,也清晰的知道各个功能相关的函数。如果鼠标点击其中的标记可以直接跳到此标记的位置,非常的方便。当进行业务上沟通和调用时非常省时省力。用#pragma mark -还有一个好处就是在开发中我们经常会实现其他类的delegate,datasource,protocol等,如果我们#pragma mark - UITableViewDelegate,当我们用鼠标加上command点击UITableViewDelegate会直接跳到这个delegate定义的地方,可以方便的查看相关方法。个人对#pragma mark - 作用的理解是便于开发者之间相互交流。特别是多人的大项目时,如果大家都按各自喜好随便使用#pragma mark - 那么对于项目开发和维护来说是非常灾难性的。不仅开发者自己不清楚自己的整个文件的结构,当其他开发者进行接手开发时将是件非常头大的事情。由于objc函数命名时具有口语化的特点,函数一看名字就知道其要实现的功能,所以平常开发中只写一些关键性说明的注释,如bool变量的说明,业务处理的逻辑等。结合#pragma mark - 可以很方便的让其他开发者理解。

#waring 

  这个更加建议大家使用,Xcode默认支持了将#waring标记以编译警告的形式显示出来。在软件开发中,大家都会用TODO,FIXME,XXX等特殊注释。这些关键字也被很多IDE所支持。如果在代码中加入#warning 此处需要修改 by james,在Xcode的编译警告窗口中看到:

在开发中,我们苦逼程序员的思维不断的被打断,不断的来回切换。比如业务逻辑未定,网络请求地址切换,写死代码进行本地测试,项目联调等操作。最蛋疼的时项目上线后突然发现请求地址不对,本地含有写死的测试数据或者我们需要用到其他项目模块代码时,临时改动了别人代码,但木有改回去。这种情况就属于重大项目事故了。一两个不确定改动,苦逼程序员或许会记住,但是多了之后,那直接是百分之一万会被遗漏的。所以最好的方法是在你不确定的业务,测试数据等地方标上编译警告。以#waring 开头写下原因,标记人,时间等说明信息。这样在项目开发结束后,会有一个专门的时间去消除这些警告,以确保没有遗漏的地方。

  对于依然喜欢用TODO,FIXME,XXX的开发者来说可以,设置下工程的"Build Phases",然后添加New Run Script Build Phase,添加以下代码

KEYWORDS="TODO:|FIXME:|XXX:"find "${SRCROOT}" \( -name "*.h" -or -name "*.m" \) -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/ warning: \$1/"

这样xocde就可以将这些特殊标记以#waring的形式展现出来。

 

 

转载于:https://www.cnblogs.com/jamesy/p/3938337.html

你可能感兴趣的文章
Android中全屏或者取消标题栏
查看>>
处理器管理与进程调度
查看>>
页面懒加载
查看>>
向量非零元素个数_向量范数详解+代码实现
查看>>
java zip 中文文件名乱码_java使用zip压缩中文文件名乱码的解决办法
查看>>
java if 用法详解_Java编程中的条件判断之if语句的用法详解
查看>>
kafka的java客户端_KAFKA Producer java客户端示例
查看>>
java -f_java学习笔记(一)
查看>>
java 什么题目好做_用java做这些题目
查看>>
java中的合同打印_比较方法违反了Java 7中的一般合同
查看>>
php 位运算与权限,怎么在PHP中使用位运算对网站的权限进行管理
查看>>
php include效率,php include类文件超时
查看>>
matlab sin函数 fft,matlab的fft函数的使用教程
查看>>
wcdma下行如何解扩解扰 matlab,WCDMA技术基础.ppt
查看>>
MySQL date_format() 函数
查看>>
mysql 时间处理
查看>>
mysql adddate()函数
查看>>
mysql addtime() 函数
查看>>
mysql 根据日期时间查询数据
查看>>
mysql 创建时间字段
查看>>