2016-07-15 12 views
-1

Ich bin neu in Ziel c. Ich mag den Inhalt von wandelbarer Zeichenfolge ersetzen I-Code verwenden alsWie ersetzt man den Inhalt von NSMutablestring in Ziel c

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

aber es zeigt, warne ich Incomparable Zeigertypen zu NSMutableString * von NSString * Zuordnung

Jede Anregung dazu. Ich benutze MutableString.

+0

buz stringByReplacingOccurrencesOfString gibt NSString nicht NSMutableString zurück. –

Antwort

0

Es teilt Ihnen mit, dass diese Funktion NSString * zurückgibt. Wenn Sie diese Warnung löschen möchten. Genau das tun, wie folgt aus:

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

Es zeigt mir die gleiche Warnung. –

+0

@Muju Meine Schuld, aktualisierte meine Antwort. – Lumialxk

+0

Jetzt funktioniert es gut. –

0

Siehe Methode signeture von NSString Class.

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

Diese Methode gibt NSString-Objekt zurück.

Sie müssen also Ergebnis in mutalbe Zeichenfolge konvertieren oder fangen Sie das Ergebnis in NSString.

+0

Oder - vielleicht - wie wäre es mit einer Methode für _mutable_ strings? – gnasher729

+0

@Gnasher können Sie die Dokumentation des Apfels folgen. Es ist sehr klar und kann ohne Anstrengung unterschätzbar –

-1

plz diesen Code

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

Sie mißverstehen völlig, wie veränderbare Zeichenketten arbeiten. Verwenden Sie "replaceOccurencesOfString". Sie erstellen drei Objekte, wenn Sie nur eines erstellen müssen. – gnasher729

+0

@ gnasher729 Können Sie erklären, wo ich drei Objekte verwende? –

0

Lesen Sie die Dokumentation für NSString und NSMutableString verwenden. Das gilt nicht nur für Sie, sondern für alle, die hier bisher antworten. Die Antworten auf diesen Thread waren absolut deprimierend.

Es gibt Methoden, die für NSString verwendet werden können, aber auch mit NSMutableString, die eine neue, unveränderliche Zeichenfolge basierend auf einer vorherigen Zeichenfolge erstellen. In der Regel erstellen Methoden, die mit "stringBy ..." beginnen, eine neue Zeichenfolge.

Und es gibt Methoden, in der NSMutableString-Schnittstelle, die den Inhalt eines vorhandenen NSMutableString ändern. Wie "replaceOccurencesOfString".

Lesen Sie die Dokumentation und wählen Sie, was für Sie richtig ist. Eine Methode, die mit "stringBy" beginnt, ist nicht, um Ihre veränderbare Zeichenkette zu ändern, sie erstellt eine neue unveränderliche Zeichenkette. Zu ändern Sie eine Zeichenfolge, verwenden Sie die Methoden von der NSMutableString-Schnittstelle. Zum Glück sagt Ihnen der Compiler, wenn Sie die falsche Methode verwenden.

Verwandte Themen