# 前言#
objective-c
蘋果推崇的編碼規範核心思想是:可讀性高。不隨便使用縮寫,分段式長函式名都是基於此思想。在實際編碼過程中,隨時以此思想為準則。 #
一:命名
## 1
:清晰,無歧義 如:
```insertobject: atindex:
(好)
insert:at:
(不清晰)
```方法名稱必須明確表達出該方法的用途
,駝峰名中第一段須表示出該方法的主要動作
或者宿主物件
,例如可採用這種方式
:btnpressed,
使用第一段
btn
用於表示這是乙個
按鈕方法。
## 2
:不要隨便縮寫名稱,即使很長也要拼寫完整。
```setbackgroundcolor:
(好)
setbkgcolor :
(不清晰)
```可以使用的常見縮寫
```alt alternate.
calc calculate.
func function.
horiz horizontal.
info information.
max maximum.
min minimum.
msg message.
rect rectangle.
temp temporary.
vert vertical.
btn button
dest destination
```## 4
:字首
在實際編碼中,
命名class, protocol, structure
,typedef
等時,要使用字首。
命名方法時,不使用字首。因為方法處於所在類的命名空間中。 例:
qtxbaseviewcontroller
,而此類的中的方法不需要再加字首
## 5
:書寫規範
使用camel
命名法
正常情況下,方法名小寫第乙個單詞的首字元,大寫後續所有單詞的首字元。 如:
fileexistsatpath:isdirectory:
##6:類擴充套件(
category):
標頭檔案的命名形式為:原類名
+「additions」。
如:uiimageview+afnetworking.h
##7:子類命名規範
字尾必須是父類的型別: 例如
uitableview
的子類,命名為
***tableview
。以便於識別型別。 如果
是nsobject
型別的,需要指明本類的作用(如,
manager
,model等)
##8:**命名
- (cgfloat)tableview:(uitableview *)tableview heightforrowatindexpath:(nsindexpath *)indexpath;
- (void)tableview:(uitableview *)tableview didselectrowatindexpath:(nsindexpath *)indexpath;
用於通知委託物件操作即將發生或已經發生的方法名中要使用
did
或will
- (void) browserdidscroll:(nsbrowser *)sender;
用於詢問委託物件可否執行某操作的方法名中使用
should
- (bool) windowshouldclose:(id)sender; #
二:格式
1. 不同的方法間要空1行。
2. 條件,迴圈,選擇語句,整個語句結束,需要空1行。
3. 大的類別不同要空2行。
4. 星號(*
)要靠近變數,不靠近型別。 如
uicolor *textcolor;
5. 注釋應與其描述的**相近
,對**的注釋應放在其上方或右方
(對單條語句的注釋)。
# 三:其他細節
1. 對類中的不同方法進行分組,用
#pragma mark
來區分。
2. 比較時把常量放前面可以避免錯誤,不要用
if(aintvalue==255){}
,而用if(255==aintvalue){}
,避免漏掉乙個「=
」,而變成賦值。
3. 所有返回
bool
型別的值必須為
yes或no,
不能返回1,
0或其他。
4. 函式體即使只有一行**也要加大括號。
5. 常用的巨集要放到
***-prefix.pch
檔案中。
6. 備忘、標記、
todo
使用這樣的格式:
// todo: 內容
# 四:**工程結構
工程結構的規範原則是模組化,快速定位文件和資源。特制定以下規則。
第一級,分為以下兩個大組 **
系統檔案 **
資源檔案(
resources)**
****檔案(
classes)**
1:系統檔案中
```
一些幾個系統檔案.如
main.m
***-info.plist
***-prefix.pch
``` 2:
資源檔案中
resources
```
—images
(icons, defaults, others(
此資料夾中放置所需要,並分組))
—localizations
(語言包)
—databases(可選)
—audios
``` 3:
**檔案中
classes
```
—(各模組資料夾,放置某模組專屬的
view
,model
,controller等)
— thirdparty(
放置第三方庫
,必要時需要再進行分類放置)
— publicui(
放置自身的公共ui庫
,如qtxloadingview)
— publiclib(
放置自身的公共功能庫, 如
qtxurlmanager) ``
`
ios 編碼規範
正文 格式化 指標 號的位置 如 nsstring varname 空格 vs tabs 只允許使用空格,將編輯器設定為1個 tab 2 個字元縮排 每行的長度 protocals 待完善 初始化 在初始化方法中,不要將變數初始化為 0 或 nil 那是多餘的 記憶體中所有的新建立的物件 isa除外...
iOS 編碼規範
當重寫乙個子類並需要init方法,注意要重寫父類的指定初始化方法。當匯入的標頭檔案使用objective c或objective c 語言時,使用 import 當匯入標準c或 c 標頭檔案時,使用 include 標頭檔案應該使用自己的 define 重載入保護 在nsstring 上呼叫sett...
IOS 編碼規範
首先是巨集定義 define file name filename 表示時,使用大寫字母表示與一般駝峰表示想區別,然後每個詞之間使用 分開 列舉定義 列舉定義的時候,我們遵循大駝峰標記 typedef ns enum nsinteger,test 函式取名 乙個規範的方法讀起來應該像一句完整的話,讀...