본문 바로가기

iOS

isEqualToString와 관련

사실 별 생각없이 쓰는 것중에 조금만 신경쓰면 실수를 줄일 수 있는 것들이 있다.


예를 들면


    int i = 10;

    if (i == 10) {

        // todo..

    }


값 체크를 위와 같이 많이 쓴다. 


하지만 == 를 = 로 쓰는 실수를 해서 의도치 못한 동작을 할 수도 있다.


    int i = 10;

    if (i = 10) {

        // todo..

    }


Lvalue 와 Rvalue의 특성만 알아도 실수를 줄이는 코드를 작성 할 수 있다.


    int i = 10;

    if (10 == i) {

        // todo..

    }


이렇게 작성할 경우, 빌드타임에 알 수 있게 된다.


    int i = 10;

    if (10 = i) {

        // todo..

    }




이러한 실수를 할 수 있는 것 중 비슷한 원리중 하나는 isEqualToString이라는 함수도 있다.


    NSString* testString = @"test";

    if ([testString isEqualToString:@"test"]) {

        // todo..

    }


위와 같이 쓸 경우 testString 이 만약 nil일 경우 의도치 못한 동작을 할 수 있다.


따라서 다음과 같이 사용하는게 실수를 줄이는 방법이다. 


    NSString* testString = @"test";

    if ([@"test" isEqualToString:testString]) {

        // todo..

    }