iOS編碼規範

2021-07-04 20:14:47 字數 3364 閱讀 5889

# 前言#

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 函式取名 乙個規範的方法讀起來應該像一句完整的話,讀...