2011-04-09 2 views
0

에있는 일반 문자열과 문자열 비교 (초보자의 문제는, 난 두려워) :목표 - C : 나는 문자열에 대한 혼란 스러워요 NSMutableArrays

내가 하나있는 NSMutableArray는 노트북이라고합니다. 인덱스 위치 1에서 나는 문자열이라고 생각되는 객체를 가지고 있습니다. 적어도 다음과 같은 배열에 넣습니다 :

[NoteBook replaceObjectAtIndex:1 withObject:@"x-x-x-x"]; 

지금까지 그렇게 좋았습니다. 이것을 UILabel에 넣으면 화면에 x-x-x-x가 표시됩니다. 이 문자열을 다른 문자열과 비교하려고하면 악몽이 시작됩니다. 화면에 문자열 x-x-x-x를 표시하고 싶지는 않지만 대신 공백을 사용한다고 가정 해 봅시다. 그래서 내가이 코딩하여이를 달성 할 수 있다고 생각 :이 내 배열의 위치 1에서 문자열은 'XXX-X', 즉 경우에도 작동하지 않는 몇 가지 이유를 들어

NSString *tempDateString; 
tempDateString = [NSString stringWithFormat:@"%@",[NoteBook objectAtIndex:1]]; 

if (tempDateString == @"x-x-x-x") { 

     UISampleLabel.text = @""; 

    } 

를, 그것은 아직 설정하지 않습니다 내 UISampleLabel을 아무 것도 표시하지 않습니다.

@ "마커와 혼동스러워합니다. 언제 내가 정말로 그것을 필요로합니까? 형식 지정없이 tempDateString = [NoteBook objectAtIndex:1];을 단순히 코딩 할 수없는 이유는 무엇입니까?

어떤 도움이나 제안이라도 대단히 감사하겠습니다.

답변

3

당신은 isEqualToString로 문자열을 비교해야합니다

대답 됐어요 질문 외에도
if ([tempDateString isEqualToString:@"x-x-x-x"]) { 
    UISampleLabel.text = @""; 
} 
+0

많은 감사, 당신은 내 하루를 저장했습니다! –

+0

여러분을 환영합니다! –

1

:

할 수없는 이유는 I 포맷 일이없이 단순히 코드 tempDateString = [NoteBook objectAtIndex:1];?

하실 수 있습니다. 왜 네가 할 수 없다고 생각하니?

+1

가능합니다. 그러나 objectAtIndex : 1에서 가져 오는 인스턴스는 자동 회수 객체입니다. 메소드 외부에서 사용하려면이 메소드를 보유해야합니다. ;-) –

+0

고마워요,하지만'+ stringWithFormat :'에서 반환 된 인스턴스에 대해서도 마찬가지입니다. 게다가, 나는 내 자신의 이익을 요구하지 않고있다 - 나는 왜 그가 ** + stringWithFormat :이 필요하다고 생각 하는가를 묻고있다. 그의 대답은 우리가 정리하는데 도움이 될 수있는 오해를 나타낼 수 있습니다. –

+0

의견을 보내 주셔서 감사합니다. 사실, 나는 여전히 매우 혼란 스럽다. 나는 우리가 문자열을 다루고 있음을 나타 내기 위해 이것을 필요로한다고 생각했다. stringWithFormat을 사용하여 무언가를 선언하면 차이점이 있습니까? –

관련 문제