2016-07-15 9 views
-1

나는 객관적인 c.에서 새롭다. 나는객관적인 c에서 NSMutablestring의 내용을 대체하는 방법

NSMutableString *myMutableStringObj = [myMutableStringObj stringByReplacingOccurrencesOfString:@" & " withString:@"And"]; 

나는이 코드를 사용하고 가변 문자열의 내용을 대체 할 그러나 그것은 나를 NSString *

이것에 대해 어떤 제안에서 NSMutableString *에 할당 가되지 않는 포인터 타입 경고 표시합니다. MutableString을 사용하고 있습니다.

+0

buz stringByReplacingOccurrencesOfString은 NSMutableString이 아닌 NSString을 반환합니다. –

답변

0

이 함수는 NSString *을 반환합니다. 그 경고를 지우고 싶다면. 그냥 다음과 같이하십시오 :

NSMutableString *myMutableStringObj = [[myMutableStringObj stringByReplacingOccurrencesOfString:@" & " withString:@"And"] mutableCopy]; 
+0

나에게도 같은 경고가 표시됩니다. –

+0

@Muju 내 잘못, 내 대답을 업데이 트되었습니다. – Lumialxk

+0

이제 괜찮습니다. –

0

NSString Class에서 서명하십시오.

- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target 
             withString:(NSString *)replacement 

이 메서드는 NSString 개체를 반환합니다.

그래서 결과를 mutalbe 문자열로 변환하거나 NSString에서 결과를 캐치해야합니다.

+0

또는 어쩌면 - _mutable_ 문자열에 대한 메서드를 사용하는 것은 어떻습니까? – gnasher729

+0

@gnasher 당신은 사과의 문서를 따라갈 수 있습니다. 매우 명확하고 아무런 노력도없이 과소 평가할 수 있습니다. –

-1

PLZ있는 NSString과 인 NSMutableString에 대한 설명서를 읽기이 코드

NSMutableString * str1 = [NSMutableString stringWithString:@"Hello Testing"]; 
    str1 = [[str1 stringByReplacingOccurrencesOfString:@"T" withString:@"B"] mutableCopy]; 
    NSLog(@"%@",str1); 
+0

가변 문자열이 어떻게 작동하는지 완전히 오해합니다. "replaceOccurencesOfString"을 사용하십시오. 하나만 만들면 3 개의 개체가 생성됩니다. – gnasher729

+0

@ gnasher729 어디에서 세 개의 개체를 사용하는지 설명 할 수 있습니까? –

0

를 사용합니다. 그것은 당신에게 적용되는 것이 아니라 지금까지 여기에 응답하는 모든 사람들에게 적용됩니다. 이 스레드에 대한 답변은 절대적으로 우울했습니다.

NSString에 사용할 수있는 메서드가 있지만 이전 문자열을 기반으로 새로운 불변 ​​문자열을 만드는 NSMutableString에서도 사용할 수있는 메서드가 있습니다. 일반적으로 "stringBy ..."로 시작하는 메서드는 새 문자열을 만듭니다.

그리고 NSMutableString 인터페이스에 의 메서드가 있는데 기존의 NSMutableString의 내용을으로 수정합니다. "replaceOccurencesOfString"과 같습니다.

설명서를 읽고 적합한 것이 무엇인지 선택하십시오. "stringBy"로 시작하는 메소드는 이 아니며 변경 가능한 문자열을 수정하려는이면서 새로운 불변의 문자열을 만듭니다. 문자열을 수정하려면 NSMutableString 인터페이스의 메서드를 사용하십시오. 다행히 컴파일러는 잘못된 메소드를 사용할 때 알려줍니다.