iOS 개발에 누적된 코드 사양

4684 단어
개발 과정에서 우리는 다른 사람의 코드를 보아야 할 뿐만 아니라 다른 사람에게도 우리의 코드를 보여줘야 한다.그러면 좋은 인코딩 습관이 매우 중요할 것이다.다음은 비교적 일반적인 코드 규범들이다.【1】 클래스나 방법을 설명할 때 빈칸의 사용을 주의하고 파라미터가 너무 많으면 줄을 바꾸어 사칭 정렬을 유지할 수 있다
- (id)initWithName:(NSString *)name
               age:(NSInteger)age
               sex:(MDPersonalSex)sex;

호출 방법도 마찬가지입니다. 매개 변수는 한 줄에 쓰여 있거나, 줄을 바꾸어 사칭하여 정렬됩니다.
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"title"
                                                message:@"message"
                                               delegate:self
                                      cancelButtonTitle:@"  "
                                      otherButtonTitles:@"  ", nil];

【2】명명 규칙: 유형명 이니셜 대문자, 방법 이니셜 소문자, 방법 중의 매개 변수 이니셜 소문자, 동시에 방법의 명명을 한 문장처럼 읽어서 방법의 뜻을 전달할 수 있도록 하고 값을 얻기 전에 접두어'get'을 붙이지 말아야 한다.
- (void)choosePhotoAtIndex:(NSUInteger)index;

변수 이름 소문자 시작
NSString *title = [titleArray objectAtIndex:0];

상량은 소문자 k로 시작하고, 후속 이니셜은 대문자로 쓴다
static const NSString *kBaseServiceUrl = @"www.baidu.com";

【3】가능한 한 보증합니다.h 파일의 간결성은 공개하지 않는 API는 공개하지 마십시오. 실행 파일에 쓰면 됩니다[4] Xcode는 Objective-C/C++ 혼합을 지원하기 때문에 헤더 파일을 인용할 때: #import Ojbective-C/Objective-C++ 헤더 파일(Objective-C++는 Objective-C와 혼합된 파일), #include C/C++ 헤더 파일입니다.【5】delegate를 쓸 때 유형은 weak약인용으로 순환인용을 피해야 한다.
@property (nonatomic, weak) id delegate;

【6】 실례 변수가 명확할 때 앞에 밑줄 ""를 넣고,국부 변수는 사용하지 않는다.
@interface MDPersonal : NSObject {
    @private
    NSString *_name;
    NSUInteger _age;
    MDPersonalSex _sex;
}

【7】 모든 방법의 정의 전에 한 줄을 남긴다. 즉, 방법과 방법 사이에 한 줄을 남긴다.【8】 기능이 비슷한 방법은 함께 놓아야 하며 #pragmamark-**를 사용하여 코드를 내비게이션하고 코드 블록을 나누는 것을 추천합니다.이렇게 하면 함수의 검색을 편리하게 할 수 있다.또한 단축키 control+6을 사용하여 방법의 위치를 빠르게 찾을 수 있습니다.
#pragma mark - UITableViewDataSource
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return self.dataSource.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    SCTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([SCTableViewCell class]) forIndexPath:indexPath];
    return cell;
}

【9】 이원 연산자와 매개 변수 사이에는 공백이 있어야 한다. 예를 들어 부치호 = 좌우에 각각 공백을 남겨야 한다.
self.myString = @"235423523452345";

【10】 일원 연산자와 매개 변수 사이에 공백을 두지 않는다. 예를 들어!연산자 없음, &, | 등
BOOL isOpen = true;
BOOL isClose = !isOpen;

[11] 강제 유형 변환과 매개변수 사이에 공백을 두지 않습니다.
NSString *str3 = (NSString*)self.myString;

【12】 긴 변수 값은 여러 줄로 나누어야 한다.특히 수조나 사전을 사용하는 데 나타난다.다음은 그룹 @[]과 사전 @{}을 빠르게 설명하는 방법입니다.
NSArray *array = @[@"1111111",
                   @"2222222",
                   @"3333333",
                   @"4444444"
                  ];
NSDictionary *dict = @{@"key1":@"11",
                       @"key2":@"22",
                       @"key3":@"33",
                       @"key4":@"44"
                      };

[13] 코드의 중복 계산을 최대한 줄인다. 예를 들어 코드의 여러 곳에서 화면 폭을 사용해야 한다. [[UIScreenmain Screen] bounds].size.width, 그리고 계산을 많이 해요. 번거롭고 코드도 지루해요.차라리 직접 매크로 정의:
#define SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width)

[14] 매크로 정의 모든 자모 대문자 [15] 정의 매거진 시 typedef
typedef NS_ENUM(NSInteger, MDPersonalSex) {
    ///    
    MDPersonalSexDefault,
    /// 
    MDPersonalSexMale,
    /// 
    MDPersonalSexFemale
};

【16】 첫 번째 괄호는 방법체 뒤에 있는 것이지 다른 줄이 아니다. 그러면 코드 줄 【17】Protocol이 단독으로 하나의 파일로 만드는 것을 줄일 수 있고 관련 클래스와 한 파일에 섞이지 않도록 한다.【18】 클래스 방법과 실례 방법을 대표하는 "+"더하기 기호, "-"빼기 기호는 빈칸이 필요하다.【19】xib를 로드할 때 명칭은 NSStringFromClass()를 사용하는 것이 좋으며, 쓰기 오류를 피할 수 있다
[self.tableView registerNib:[UINib nibWithNibName:NSStringFromClass([SCSmartApplyPhotoCell class]) bundle:nil]
         forCellReuseIdentifier:NSStringFromClass([SCSmartApplyPhotoCell class])];

【20】 만약에 제3자 라이브러리를 사용한다면 그 내부 실현을 수정하지 말고 다시 포장하고 개성 있게 만들어야 한다.【21】 속성이 BOOL 유형인 경우 괄호에 Get 메소드 이름을 다시 쓰는 것이 좋습니다. 코드의 가독성이 향상되었습니다.
@property (assign, nonatomic, getter=isShow) BOOL show;

계속 보완 중입니다.
주: 위에는 모두 제 일가의 말입니다. 만약에 여러분의 개발팀이나 회사가 자신의 코드 규범을 가지고 있다면 당연히 팀의 말에 따라야 합니다.

좋은 웹페이지 즐겨찾기