《从零開始学Swift》学习笔记(Day 57)——Swift编码规范之凝视规范:文件凝视、文档凝视、代码凝视、使用地标凝视
前面说到Swift凝视的语法有两种:单行凝视(//)和多行凝视(/*...*/)。这里来介绍一下他们的使用规范。
1、文件凝视
文件凝视就在每个文件开头加入凝视,文件凝视通常包含例如以下信息:版权信息、文件名称、所在模块、作者信息、历史版本号信息、文件内容和作用等。
以下看一个文件凝视的演示样例:
/* Copyright (C) 2015 Eorient Inc. All Rights Reserved. See LICENSE.txt for this sample’s licensing information Description: This file contains the foundational subclass of NSOperation. History: 15/7/22: Created by Tony Guan. 15/8/20: Add socket library 15/8/22: Add math library */
这个凝视仅仅是提供了版权信息、文件内容和历史版本号信息等。文件凝视要依据自己实际情况包含内容。
2、文档凝视
文档凝视就是这样的凝视内容能够生成API帮助文档。
文档凝视主要对类型、属性、方法或函数等功能。
文档凝视是略微将单行凝视(//)和多行凝视(/*...*/)做一点“手脚”后。就成为了文档凝视。单行文档凝视(///)和多行文档凝视(/**...*/)。
以下代码演示样例:
import Foundation /**
The protocol that types may implement if they wish to be notified of significant operation lifecycle events.
*/ protocol OperationObserver { /// Invoked immediately prior to the `Operation`'s `execute()` method. func operationDidStart(operation: Operation) }
代码中使用了文档凝视。
能够使用一些工具将这些文档凝视生成API文件
3、代码凝视
程序代码中处理文档凝视还须要在一些关键的地方加入代码凝视,文档凝视通常是给一些看不到源码的人看的帮助文档。而代码凝视是给阅读源码人參考的。
代码凝视通常是採用单行凝视(//)和多行凝视(/*...*/)。
有的时候也会在代码的尾端进行凝视。这要求凝视内容极短,应该在有足够的空白来分开代码和凝视。尾端凝视演示样例代码例如以下:
init(timeout: NSTimeInterval) {
self.timeout = timeout //初始化
}
4、使用地标凝视
随着编码过程深入,project代码量会添加,不论什么在这大量的代码中能高速找到须要方法或者是刚才改动过代码呢?
在Swift代码中使用地标凝视,然后就能够使用Xcode工具在代码中高速查找了。
地标凝视有三个:
MARK,用于方法或函数的凝视。
TODO,表示这里代码有没有完毕。还要处理。
FIXME,表示这里改动了代码。
这些凝视会出如今Xcode的 Jump Bar中。来看一个演示样例:
class ViewController: UIViewController,
ÊUITableViewDataSource, UITableViewDelegate {
var listTeams: [[String:String]]!
override func viewDidLoad() {
super.viewDidLoad()
...
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
//TODO: 释放资源 //使用TODO凝视
} // MARK: UITableViewDataSource 协议方法 //使用MARK凝视
func tableView(tableView: UITableView,
ÊnumberOfRowsInSection section: Int) -> Int {
return self.listTeams.count
} func tableView(tableView: UITableView,
ÊcellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cellIdentifier = "CellIdentifier" let cell: UITableViewCell! = tableView
Ê.dequeueReusableCellWithIdentifier(cellIdentifier,
ÊforIndexPath: indexPath) as? UITableViewCell
// FIXME: 改动bug //使用了FIXME凝视
let row = indexPath.row
let rowDict = self.listTeams[row] as [String:String]
...
return cell
} // MARK: UITableViewDelegate 协议方法 //使用MARK凝视
func tableView(tableView: UITableView,
ÊdidSelectRowAtIndexPath indexPath: NSIndexPath) {
...
}
}
上述代码中使用三种地标凝视,在使用时候后面要跟有一个冒号(:)。
凝视之后假设使用呢?打开Xcode的 Jump Bar。例如以下图。这些地标凝视会在下拉列表中粗体显示。点击列表项就会跳转到凝视行。
欢迎关注关东升新浪微博@tony_关东升。
关注智捷课堂微信公共平台,了解最新技术文章、图书、教程信息
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />
很多其它精品iOS、Cocos、移动设计课程请关注智捷课堂官方站点:http://www.zhijieketang.com
智捷课堂论坛站点:http://51work6.com/forum.php
《从零開始学Swift》学习笔记(Day 57)——Swift编码规范之凝视规范:文件凝视、文档凝视、代码凝视、使用地标凝视的更多相关文章
- 关东升的《从零開始学Swift》即将出版
大家好: 苹果2015WWDC大会公布了Swift2.0,它较之前的版本号Swift1.x有非常大的变化.所以我即将出版<从零開始学Swift><从零開始学Swift>将在&l ...
- 从零開始学Swift之Hello World进化版
上节课,也就是昨晚啦,我们学习到从零開始学Swift之Hello World.那一节仅仅有一句代码,大家会认为不够过瘾. 那么这节课,就给大家来多点瘾货吧! 先上图! //var 代表变量的类型, s ...
- 《PHP 5.5从零開始学(视频教学版)》内容简单介绍、文件夹
<PHP 5.5从零開始学(视频教学版)>当当网购买地址: http://product.dangdang.com/23586810.html <PHP 5.5从零開始学(视频教学版 ...
- 《从零開始学Swift》学习笔记(Day5)——我所知道的标识符和keyword
Swift 2.0学习笔记(Day5)--我所知道的标识符和keyword 原创文章,欢迎转载.转载请注明:关东升的博客 好多计算机语言都有标识符和keyword,一直没有好好的总结,就是这 ...
- 《从零開始学Swift》学习笔记(Day 1)——我的第一行Swift代码
Swift 2.0学习笔记--我的第一行Swift代码 原创文章,欢迎转载. 转载请注明:关东升的博客 当第一次看到以下代码时我石化了.这些代码是什么东东?单词拼出来的? import Foun ...
- 从零開始学android<数据存储(1)SharedPreferences属性文件.三十五.>
在android中有五种保存数据的方法.各自是: Shared Preferences Store private primitive data in key-value pairs. 相应属性的键值 ...
- 从零開始学android<TabHost标签组件.二十九.>
TabHost主要特点是能够在一个窗体中显示多组标签栏的内容,在Android系统之中每一个标签栏就称为一个Tab.而包括这多个标签栏的容器就将其称为TabHost.TabHost类的继承结构例如以下 ...
- 【高德地图API】从零開始学高德JS API(五)路线规划——驾车|公交|步行
先来看两个问题:路线规划与导航有什么差别?步行导航与驾车导航有什么差别? 回答: 1.路线规划,指的是为用户提供3条路线推荐.[高德]在提供路线规划的时候,会提供用户自己定义路线规划功能,这是别家没有 ...
- 第13章、布局Layouts之RelativeLayout相对布局(从零開始学Android)
RelativeLayout相对布局 RelativeLayout是一种相对布局,控件的位置是依照相对位置来计算的,后一个控件在什么位置依赖于前一个控件的基本位置,是布局最经常使用,也是最灵活的一种布 ...
随机推荐
- linux--redis的安装和配置和开启多个端口
在workerman开发过程中需要安装redis来存储用户ip.端口等信息 首先UBUNTU中安装redis: apt-update //更新apt包源apt-get install redis-s ...
- AC日记——Andryusha and Colored Balloons codeforces 780c
C - Andryusha and Colored Balloons 思路: 水题: 代码: #include <cstdio> #include <cstring> #inc ...
- 如何正确学习web前端流程以及如何找工作
解释一下web前端工作是做啥的,Web前端开发工程师,主要职责是利用(X)HTML/CSS/JavaScript/Flash等各种Web技术进行客户端产品的开发.完成客户端程序(也就是浏览器端)的开发 ...
- Unable to set localhost. This prevents creation of a GUID
原因:tomcat无法解析hostname 解决方案:解决方案:在/etc/hosts文件中添加hostname解析
- Python 读写 Excel(转)
Python 读写 Excel 基本上, 这个网页已经说明一切了: http://pypi.python.org/pypi/xlrd 等有时间再把这个页面写漂亮,现在先记一些代码. 读Excel 先建 ...
- linux根目录下文件夹概览详解
/ 根目录 /bin 存放必要的命令 /boot 存放内核以及启动所需的文件等 /dev 存放设备文件 /etc 存放系统的配置文件 /home 用户文件的主目录,用户数据存放在其主目录中 /lib ...
- 洛谷——P1795 无穷的序列_NOI导刊2010提高(05)
P1795 无穷的序列_NOI导刊2010提高(05) 题目描述 有一个无穷序列如下: 110100100010000100000… 请你找出这个无穷序列中指定位置上的数字 输入输出格式 输入格式: ...
- ASP.NET Core 2.2 基础知识(二) 中间件
中间件是一种装配到应用管道以处理请求和相应的软件.每个软件都可以: 1.选择是否将请求传递到管道中的下一个组件; 2.可在调用管道中的下一个组件前后执行工作. 管道由 IApplicationBuil ...
- luogu P1418 选点问题
题目描述 给出n个点,m条边,每个点能控制与其相连的所有的边,要求选出一些点,使得这些点能控制所有的边,并且点数最少.同时,任意一条边不能被两个点控制 输入输出格式 输入格式: 第一行给出两个正整数n ...
- POJ 3532 Resistance(高斯消元+基尔霍夫定理)
[题目链接] http://poj.org/problem?id=3532 [题目大意] 给出n个点,一些点之间有电阻相连,求1~n的等效电阻 [题解] 有基尔霍夫定理:任何一个点(除起点和终点)发出 ...