2010-08-30 12 views
8
NSMutableString *str, *str1; 

// allocazione quiCome aggiungere NSMutableString con NSMutableString?

sto usando [str appendString:str1] non funziona. [str appendFormat:str1] non funziona.

Quindi, come aggiungere un NSMutableString a un altro NSMutableString.

@str è un empty string inizializzato su nil. str1 ha qualche valore. [str appendString str1] rendimenti null

+2

Per consentirci di aiutarti, dovremmo sapere che cosa significa "non funziona" nel tuo caso, perché la nostra sfera di cristallo al momento non funziona :) Secondo la documentazione di Apples, entrambi i metodi dovrebbero fare ciò che stai cercando di do (http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSMutableString_Class/Reference/Reference.html#//apple_ref/occ/instm/NSMutableString/appendString:) – fresskoma

+0

Cosa fa "non funziona" significa? Eccezioni? – tobiasbayer

+0

non funziona significa non in grado di aggiungere. – user426795

risposta

0
NSMutableString *mystring = [NSMutableString stringWithFormat:@"pretty"]; 
    NSMutableString *appending = [NSMutableString stringWithFormat:@"face"]; 
    [mystring appendString:appending]; 

funziona per me ...

sono certo le variabili sono stati assegnati (correttamente?)? Nessun errore ortografico?

21

Sembra che tu stia inviando un messaggio a nil. nil è NON un oggetto, è solo niente. Invio di un messaggio a nulla restituire semplicemente nulla. Per aggiungere queste stringhe, è necessario inizializzarsi su una stringa vuota. Così:

NSMutableString *str = [NSMutableString string]; 

Quindi il codice funzionerà. In questo modo:

[str appendString:str1]; 
3

se str == nil, nessuna chiamata vengono eseguiti perché non v'è alcun oggetto allocato a ricevere il messaggio, ma non ha fatto eccezione risuscitano (messaggi inviati a zero restituire nil alla progettazione in Objective-C).

NSMutableString *str, *str1; 

str = [NSMutableString stringWithString:@"Hello "]; 
str1 = [NSMutableString stringWithString:@"World"]; 

NSMutableString *sayit = [str appendString:str1]; 
+0

Quindi come impostare My NSMutableString su null. Perché un certo punto del mio programma voglio impostare str1 a vuoto. – user426795

+0

Forse è il momento di spiegare con maggiore precisione cosa si vuole esattamente fare ... Btw, Empty e nil sono cose diverse – VdesmedT

+0

[Stringa NSMutableString] crea una stringa mutabile vuota I.e. "" – VdesmedT

0

versione Swift

Anche se in Swift non è la pratica generale di utilizzare NSMutableString, it may at times be necessary. Questo è come si dovrebbe farlo:

var str: NSMutableString = NSMutableString() 
var str1: NSMutableString = "some value" 
str.appendString(str1 as String) // str = "some value" 

Nota che il solito modo per aggiungere una stringa a Swift è come questo:

var str = "" 
let str1 = "some value" 
str += str1 

dove sono desunti str e str1 essere di tipo String.

Problemi correlati