사실 별 생각없이 쓰는 것중에 조금만 신경쓰면 실수를 줄일 수 있는 것들이 있다.
예를 들면
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..
}
'iOS' 카테고리의 다른 글
iPhoneOS 10.2 sdk Frameworks (0) | 2017.12.11 |
---|---|
iPhoneOS 9.3 sdk Frameworks (0) | 2017.12.11 |
iPhoneOS 11.1 sdk Frameworks (0) | 2017.12.11 |
framework not found FileProvider for architecture arm64 (0) | 2017.12.11 |
Compilling IB documents for earlier than iOS 7 is no longer supported. (0) | 2017.12.01 |