ios 編碼規範

2021-07-04 04:18:07 字數 2139 閱讀 5464

正文:

• 格式化**

◦ 指標「*」

號的位置

▪ 如:

nsstring *varname;

◦ 空格 vs tabs

▪ 只允許使用空格,將編輯器設定為1個

tab = 2

個字元縮排

◦ 每行的長度

◦ protocals

▪ 待完善

◦ 初始化

▪ 在初始化方法中,不要將變數初始化為

「0」或

「nil」

,那是多餘的

▪ 記憶體中所有的新建立的物件(

isa除外)都是

0,所以不需要重複初始化為

「0」或

「nil」

◦ 避免顯式的呼叫

+new方法

▪ 禁止直接呼叫

nsobject

的類方法

+new

,也不要在子類中過載它。使用

alloc

和init

方法◦

保持公共

api的簡潔性

▪ 待完善◦

#import vs #include

▪ 使用#import

引入ojbective-c

和ojbective-c++

標頭檔案,使用

#include引入c

和c++

標頭檔案

◦ import

根框架(

root frameworks

),而非各單個檔案

▪ 雖然有時我們僅需要框架(如

cocoa

或 foundation

)的某幾個標頭檔案,但引入根檔案編譯

器會執行的更快。因為根框架(

root frameworks

)一般會預編譯,所以載入會更快。再次強調:使用

#import

而非 #include

來引入objective-c

框架。如:

#import //

禁止#import

...#import //

對頭◦

建立物件時盡量使用

autorelease

▪ 禁止使用

retain

,以防止意外的修改了

nsstring

變數的值。如:

- (void)setfoo:(nsstring *)afoo 

或@property (nonatomic, copy) nsstring *astring;

避免丟擲異常(

throwing exceptions)▪

待完善

◦ 對 nil

的檢查▪

僅在有業務邏輯需求時檢查

nil,而非為了防止崩潰

▪ 向 nil

傳送訊息不會導致系統崩潰,

objective-c

執行時負責處理。

◦ bool陷阱

▪ 命名:與去掉

「_」字首的成員變數相同,使用

@synthesize

將二者聯絡起來。如:

// abcd.h

@inte***ce myclass : nsobject

@property (copy, nonatomic) nsstring *name;

@end

// abcd.m

@implementation myclass

@synthesize name = _name;

@end

▪ 位置:屬性的宣告緊隨成員變數塊之後,中間空一行,無縮排。如上例所示

▪ 嚴把許可權:對不需要外部修改的屬性使用

readonly

▪ nsstring

使用copy

而非retain

▪ cftype

使用@dynamic

, 禁止使用

@synthesize

▪ 除非必須,使用

nonatomic

• cocoa pattern

◦ delegate pattern

(委託)

iOS編碼規範

前言 objective c 蘋果推崇的編碼規範核心思想是 可讀性高。不隨便使用縮寫,分段式長函式名都是基於此思想。在實際編碼過程中,隨時以此思想為準則。一 命名 1 清晰,無歧義 如 insertobject atindex 好 insert at 不清晰 方法名稱必須明確表達出該方法的用途 駝峰...

iOS 編碼規範

當重寫乙個子類並需要init方法,注意要重寫父類的指定初始化方法。當匯入的標頭檔案使用objective c或objective c 語言時,使用 import 當匯入標準c或 c 標頭檔案時,使用 include 標頭檔案應該使用自己的 define 重載入保護 在nsstring 上呼叫sett...

IOS 編碼規範

首先是巨集定義 define file name filename 表示時,使用大寫字母表示與一般駝峰表示想區別,然後每個詞之間使用 分開 列舉定義 列舉定義的時候,我們遵循大駝峰標記 typedef ns enum nsinteger,test 函式取名 乙個規範的方法讀起來應該像一句完整的話,讀...