2013. 5. 28. 17:59ㆍ제2외국어/에러일지.
-[NSPlaceholderString initWithString:]: nil argument'
아우..
오늘은 Crash 의 날이네요. 벌써 2번째 ;;
첫번째 Crash에서 기운을 다 써서 이번엔 Debug하지 않고, 바로 검색을 해봤습니다.
-[NSPlaceholderString initWithString:]: nil argument'
이유 : NSString 을 nil로 초기값을 줄 때 생긴 문제
보통 NSString 을 초기화 할 떄 다음과 같은 3가지 방법을 사용.
1. NSString *str = @"";
2. NSString *str = [[NSString alloc] initWithFormat:@"%@",변수];
3. NSString *str = [[NSString alloc] initWithString:변수];
// 1번 방법
NSString *str = @"";
NSLog(@"str1 : %@",str);
// 2번 방법
str = [NSString stringWithFormat:@"%@",nil];
NSLog(@"str2 : %@",str);
// 3번 방법
str = [NSString stringWithString:nil];
NSLog(@"str3 : %@",str);
다음과 같이 3번째 방법을 사용할 때 Crash가 발생하였습니다.
2번째 방법은 (null)로 표현이 되는군요.
( 즉 [str isEqualToString:@""] 로 판단하지 못 합니다. 대신 str!= nil 로는 판단이 됩니다. , 1번과 반대입니다. )
[ 참고 : 사이트 ]
PS.
참고한 사이트에서는 stringWithString < stringWithFormat 을 사용하는게 좀 더 안정적이이라는 결론을 내렸는데
그냥 stringWithFormat이 모든 부분에서 사용이 가능하기에 편하게 사용하면 된다는 결론이 맞는것 같습니다.
'제2외국어 > 에러일지.' 카테고리의 다른 글
같은 모양, 다른 값의 한글 자음 (2) | 2013.07.05 |
---|---|
[Error]Presenting action sheet clipped by its superview. (0) | 2013.06.18 |
[Error]500 OOPS: cannot change directory:/home/*** 문제시. (0) | 2013.05.09 |
[error] error: failed to attach to process ID ~~ (3) | 2013.01.04 |
[error]has no segue with identifier (0) | 2012.11.12 |