《从零開始学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是一种相对布局,控件的位置是依照相对位置来计算的,后一个控件在什么位置依赖于前一个控件的基本位置,是布局最经常使用,也是最灵活的一种布 ...
随机推荐
- Win10系统激活工具失败错误0xC004C003解决方法
用了几个WIN10的激活工具 都提示 错误0xC004C003 都原因就是这些CDKEY都被拉入了黑名单 鼠标左击屏幕左下角WIN图标,直接输入cmd,在弹出的 命令提示符 右击 以管理员运行(因为 ...
- LPD Office插件使用指南
LPD Office插件已经发布至Azure上,您可以在本机Outlook和Office Online使用该插件 一:在Outlook中使用 LPD Office插件 打开Outlook应用,并点击“ ...
- 第八届省赛 B:Quadrat (打表找规律)
Description It is well-known that for any n there are exactly four n-digit numbers (including ones w ...
- Undefined index: validate(thinkphp)
今天在用thinkphp3.23时发现错误 NOTIC: [8] Undefined index: validate 此处是thinkphp核心目录\Think\Model.class.php 第 ...
- HDU 2141 Can you find it?【二分查找是否存在ai+bj+ck=x】
Give you three sequences of numbers A, B, C, then we give you a number X. Now you need to calculate ...
- POJ 3264 Balanced Lineup 【线段树/区间最值差】
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 62103 Accepted: 29005 Cas ...
- 区间DP【p4290】[HAOI2008]玩具取名
Description 某人有一套玩具,并想法给玩具命名.首先他选择WING四个字母中的任意一个字母作为玩具的基本名字.然后他会根据自己的喜好,将名字中任意一个字母用"WING"中 ...
- py thon 多线程(转一篇好文章)
http://www.cnblogs.com/fnng/p/3670789.html
- [BZOJ3684]大朋友和多叉树
设答案为$f_s$,它的生成函数为$\begin{align*}F(x)=\sum\limits_{i=0}^\infty f_ix^i\end{align*}$,则我们有$\begin{align* ...
- FCL研究-LINQ-System.Linq Enumerable
.net 里面集合操作极为方便,尤其是实现了IEnumerable接口的集合,一直在使用,系统的研究一下集合的操作也是极好的. 类型 操作符名称 投影操作符 Select,SelectMany 限制操 ...