Objective-C Coding Style

2589 단어
모바일 인터넷의 발전 물결에 따라 더욱 많은 개발자들이 모바일 개발에 가입하였다.Objective-c와 swift학의 비기(본 장은oc에 대해서만 상세하게 해석함). 그러나 쓴 코드는 정말 다양하다. 대부분의 코드들이 이 코드를 보았을 때 "당신이 TM에 쓴 게 뭐야, what's the fxxk"라고 물어보고 싶어한다.
코딩 스타일 정말!무겁다네!기업이든 독립 개발자든 모두 자신의 코드 규범을 가지고 있다. 좋은 코드 규범은 다른 사람의 학습과 재구성에 유리하고 개발 시간을 절약하며 개발 효율을 향상시키고'성능'을 향상시키는 등이다.Next, 본론으로 들어갑시다.
PS: 아래의 여러 사람의 방법은 추천하지 않을 뿐 문법에 오류가 있다는 것을 설명할 수 없고 프로그램은crash를 할 줄 모른다

1. 조건 판단문


상황1: 볼 값 유형의 조건 판단
이렇게 해야 한다.
BOOL isSelected;
if (isSelected) {
    // true, do something
}
else {
    // false, do something
}

어떤 사람들은 이렇게 할 것이다.
BOOL isSelected;
if (isSelected == YES) {
    // true, do something
}

상황2: 값 비교의 조건 판단
이렇게 해야 한다.
    NSInteger count = 100;
    if (count == 100) {
        
    }

상황3: 복잡한 조건 판단
가능한 한 if의 복잡한 조건을 분리해야 한다.
    BOOL isObjC = YES;
    BOOL isSwift = NO;
    BOOL isIOSLanguage = isObjC || isSwift;
    
    if (isIOSLanguage) {
        // do something
    }

2. 삼목 연산


상황1: 복잡한 삼목 연산은 분리되어야 한다.
이렇게 해야 한다.
    NSInteger x = (a > b) ? c : d;
    NSInteger result = (e > f) : x : y;

이렇게 하지 마라.
    NSInteger result = (e > f) ? (a > b ? c : d) : y;

상황2: 만약 두 번째 매개 변수가 되돌아오는 대상이 조건 판단의 대상과 같다면
이렇게 해야 한다.
    result = objectC ?  : swift;

3、switch...case 조건문


상황1:case 지점에 여러 문장이 있을 때 {}을 추가해야 합니다
switch (condition) {
    case 1:
        // ...
        break;
    case 2: {
        //   
        // Multi-line example using braces
        break;
       }
    case 3:
        // ...
        break;
    default: 
        // ...
        break;
}

상황2: 서로 다른 케이스 지점에 같은 코드 블록이 있으면 합병해야 한다.
switch (condition) {
    case 1:
    case 2:
        // code executed for values 1 and 2
        break;
    default: 
        // ...
        break;
}

상황3: 매거 유형을 사용하면default 지점은 필수적이지 않습니다
switch (menuType) {
    case ZOCEnumNone:
        // ...
        break;
    case ZOCEnumValue1:
        // ...
        break;
    case ZOCEnumValue2:
        // ...
        break;
}

4. 열거 유형


NS 사용ENUM 매크로는 유형 선언 및 자동 완성을 위해 매거진 값을 직접 구현하지 않으면 첫 번째 값이 0이고 그 다음 차례로 증가합니다.
typedef NS_ENUM(NSUInteger, ZOCMachineState) {
    ZOCMachineStateNone,
    ZOCMachineStateIdle,
    ZOCMachineStateRunning,
    ZOCMachineStatePaused
};

좋은 웹페이지 즐겨찾기