# 注釋基本概念
## 什么是注釋
- 注釋是在所有計算機語言中都非常重要的一個概念,從字面上看,就是注解、解釋的意思
- 注釋可以用來解釋某一段程序或者某一行代碼是什么意思,方便程序員之間的交流。假如我寫完一行代碼后,加上相應的注釋,那么別人看到這個注釋就知道我的這行代碼是做什么用的
- 注釋可以是任何文字,也就是說可以寫中文
- 在開發工具中注釋一般是綠色
>+ 初學者編寫程序可以養成習慣:先寫注釋再寫代碼。
>+ 將自己的思想通過注釋先整理出來,在用代碼去體現。
>+ 因為代碼僅僅是思想的一種體現形式而已。
## 應用注釋的目的和應用場景
- 常見用法一(解釋代碼):
```
- (UIBarButtonItem *)initWithNorImage:(NSString *)norimage higImage:(NSString *)higImage title:(NSString *)title target:(id)target action:(SEL)action
{
// 1.創建一個按鈕
UIButton *btn = [[UIButton alloc] init];
// 2.設置按鈕的默認圖片和高亮圖片
if (norimage != nil &&
![norimage isEqualToString:@""]) {
// 圖片不為空
[btn setImage:[UIImage imageNamed:norimage] forState:UIControlStateNormal];
}
if (higImage != nil &&
![higImage isEqualToString:@""]) {
// 圖片不為空
[btn setImage:[UIImage imageNamed:higImage] forState:UIControlStateHighlighted];
}
// 設置標題
[btn setTitle:title forState:UIControlStateNormal];
// 3.監聽按鈕的點擊事件
[btn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
// 4.設置按鈕的frame
// 可以調用控件的sizeToFit方法來自動調整控件的大小
[btn sizeToFit];
// 5.根據按鈕創建BarButtonItem
return [[UIBarButtonItem alloc] initWithCustomView:btn];
}
```
- 常見用法二(函數說明)
```
/**
* 創建item
*
* @param norimage 默認狀態的圖片
* @param higImage 高亮狀態的圖片
* @param title 標題
*
* @return 創建好的item
*/
- (UIBarButtonItem *)initWithNorImage:(NSString *)norimage higImage:(NSString *)higImage title:(NSString *)title target:(id)target action:(SEL)action
{
// 1.創建一個按鈕
UIButton *btn = [[UIButton alloc] init];
// 2.設置按鈕的默認圖片和高亮圖片
if (norimage != nil &&
![norimage isEqualToString:@""]) {
// 圖片不為空
[btn setImage:[UIImage imageNamed:norimage] forState:UIControlStateNormal];
}
if (higImage != nil &&
![higImage isEqualToString:@""]) {
// 圖片不為空
[btn setImage:[UIImage imageNamed:higImage] forState:UIControlStateHighlighted];
}
// 設置標題
[btn setTitle:title forState:UIControlStateNormal];
// 3.監聽按鈕的點擊事件
[btn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
// 4.設置按鈕的frame
// 可以調用控件的sizeToFit方法來自動調整控件的大小
[btn sizeToFit];
// 5.根據按鈕創建BarButtonItem
return [[UIBarButtonItem alloc] initWithCustomView:btn];
}
```
## 注釋的特點
- 注釋是寫給人看的,不是給計算機看的。計算機怎么可能看得我們寫的中文。因此當編譯程序的時候,并不會將注釋編譯到.o目標文件中
- 從.o文件的大小可以間接看出注釋后的代碼并沒有被編譯
- 檢查代碼的作用
- 排除錯誤