2009-10-05 6 views
4

iPhone 용으로 개발하기 시작했습니다. 어떤 작품, 내가 이것을 가지고UILabel 텍스트에 문자열을 추가 하시겠습니까?

: 나는 초보자 형 질문이, 나는 확신

testLabel.text = [NSString stringWithFormat:@"%@ to %@", testLabel.text, newLabelText]; 

내가 내가 "+ ="연산자를 사용 싶지만, 나는 (컴파일 오류가 잘못된 '피연산자 NSString *'및 'NSString * 구조체'가 있음) :

testLabel.text += [NSString stringWithFormat:@"to %@", newLabelText]; 

왜이 작업을 수행 할 수 없습니까?

또한 첫 번째 코드 스 니펫을 단축 할 수 있습니까? 인 NSMutableString 사용에 대한

+0

게시 된 솔루션을 사용해보십시오 [여기] (http://stackoverflow.com/questions/510269/how-do-i-concatenate-strings-in-objective-c). – luvieere

답변

5

C와 Objective-C는 연산자 오버로딩을 허용하지 않으므로 += 연산자를 사용할 수 없습니다. +=에 허용되지 않는 두 가지 포인터 유형을 사용하려고합니다. += 표현식의 왼쪽에 포인터 유형이있는 경우 오른쪽은 정수 유형이어야하며 그 결과는 다음과 같습니다. 이 경우에는 원하는 포인터 연산이 아닙니다.

5

생각 - 당신이 같이 appendString: 방법을 사용할 수 있습니다 : 오브젝티브 -c를 지원하지 않기 때문에 할 수없는

NSMutableString *str = [@"hello" mutableCopy]; 
[str appendString:@" world!"];
2

은, 오브젝티브 -c는 C.

위에 작은 층
testLabel.text = [testLabel.text stringByAppendingFormat:@" to %@", newLabelText]; 
1

NSString은 변경할 수 없으므로 (변경할 수 없음) + =를 사용할 수 없습니다.

NSMutableString을 변경할 수 있습니다. 여기에서 사용할 수 있습니다.

코드가 이미 매우 작습니다. Objective-C는 표현 언어이므로 길고 설명적인 함수 및 변수 이름에 익숙해집니다.

관련 문제