駝峰命名法
OC提倡自注釋命名方式,即通過多個單詞組合成一個有含義的類名,變量名或者方法名.
為了方便區(qū)分單詞,采用單詞首字母大寫的方式.
- 類名所有單詞首字母都要大寫
- 變量名第一個單詞首字母小寫
- 方法名采用動賓結(jié)構(gòu),也就是'動詞'+'名詞'的形式;第一個單詞首字母小寫
例如:
用戶信息類:
@interface UserInfo: NSObject{
//用戶名變量
NSString *_userName;
//用戶學(xué)生編號
int _userStudentCount;
}
//創(chuàng)建用戶名方法:
- (void)createUserName;
@end
空格的使用方式
聲明變量時,指針符號*與變量名無間隔,與類名有一個空格間隔
形式上是 類名 *變量名
- NSString *user = @"";
- NSArray *userList = @"";
使用,, ;時, 與前方單詞無間隔,后面加一個空格
形式上是'單詞, '
- @interface UserInfo: NSObject{} @end
- @[@"11", @"22", @"33", @"44"];
- @{@"userName": @"美玲", @"sex": @"女", @"age": @22};
- NSLog(@"%@", userList);
- for(int i = 0; i < 9; i++){}
三目運算符
條件語句 ? 真值 : 假值;
NSString *category = age <= 18 ? @"小孩" : @"成年人";為變量做非空處理NSString *aStr = nil;aStr = aStr ?: @"";代碼作用是判斷aStr是否為nil如果是nil,那么賦值為@""; 否則什么都不做
運算符=, ==, +, -, *, /, %, +=, -=, *=, /=, %=前后加空格
* a += 4;
* int c = b + 2;
* NSString *name = @"美玲";
* if(i == 5){}
自增自減
i++; i--; --i; ++i; 變量和運算符之間無空格
for(int i = 0; i < 9; i++){}
方法的聲明
對象方法或者類方法的+, -號后面加空格
- (void)createUser;
+ (id)userWithType;
單例方法
通常以'standard', 'default', 'main', 'shared', 'current'單詞開頭
+ (UIApplication *)sharedApplication
+ (UIScreen *)mainScreen;
+ (UIDevice *)currentDevice;
+ (NSUserDefaults *)standardUserDefaults;
+ (NSFileManager *)defaultManager;
類工廠方法
通常以類名開頭
+ (instancetype)buttonWithType:(UIButtonType)buttonType;
+ (instancetype)stringWithString:(NSString *)string;
關(guān)系詞
'At', 'From', 'To', 'With', 'By'
- (unichar)characterAtIndex:(NSUInteger)index;
- (NSString *)substringFromIndex:(NSUInteger)from;
- (NSString *)substringToIndex:(NSUInteger)to;
- (NSString *)substringWithRange:(NSRange)range;
- (NSString *)stringByAppendingString:(NSString *)aString;
多參數(shù)方法, 除第一個參數(shù),其他參數(shù)名通常不帶有關(guān)系詞
- (NSRange)rangeOfString:(NSString *)searchString options:(NSStringCompareOptions)mask range:(NSRange)searchRange;
屬性的聲明
@property后面加空格
@property (nonatomic, readonly) UITableViewStyle style;
常量的定義
代碼中盡量不要出現(xiàn)字符串或者數(shù)字, 因為后期維護時不方便.
習(xí)慣上通過把字符串, 數(shù)字聲明為常量, 做到常量的統(tǒng)一管理.
常量定義的方式有以下兩種:
#define 宏定義
static const 靜態(tài)常量
不管聲明哪種類型的常量,變量名都需要添加'k'開頭,這樣可以有效防止命名沖突問題
具體使用時:
聲明對象類型的常量時, 習(xí)慣使用:
static NSString *const kCellIdentify = @"CellName";
聲明基礎(chǔ)類型常量時, 習(xí)慣使用:#define kDuration 30
代碼分段#pragma mark -
在代碼中通常使用'#pragma mark - '來對代碼進行分段,方便后期維護.
例如@implementation ViewController
#pragma 懶加載
- (UITableView *)someTable{return nil;}
- (UIButton *)someBtn{return nil;}
#pragma mark - UITableViewDataSource 表格數(shù)據(jù)
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{return 0;}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{return nil;}
#pragma mark - UITableViewDelegate 表格代理
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{}
#pragma mark - 生命周期
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib.}
- (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated];}
- (void)viewWillDisappear:(BOOL)animated{ [super viewWillDisappear:animated];}
- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}
@end
成員變量的聲明
成員變量要使用'_'進行標示
@interface UserInfo: NSObject{ NSString *_userName; //成員變量添加下劃線_}
@end
協(xié)議的使用
協(xié)議的聲明要跟’#import’關(guān)鍵詞之間隔一行以上,否則沒有代碼提示
#import <UIKit/UIKit.h>
@protocol ViewControllerDelegate <NSObject>
@end
@interface ViewController : UIViewController
@property (nonatomic, weak) id<UITableViewDelegate> delegate;@end
協(xié)議變量要使用weak修飾
@property (nonatomic, weak) id<UITableViewDelegate> delegate;
構(gòu)造方法的返回值選擇instancetype
- (instancetype)init
- (instancetype)initWithCoder:(NSCoder *)aDecoder
+ (instancetype)string;
+ (instancetype)stringWithString:(NSString *)string;