Beh, ci sono alcuni problemi qui.
Il primo (e non quello che hai chiesto) è che stai assegnando una nuova NSMutableString e poi semplicemente la butti via nella seconda riga quando la imposti su someTextFieldIbOutlet.text. Inoltre, stai trasmettendo una stringa non mutabile a una mutabile che in realtà non funzionerà. Invece, unire le prime due righe in questo modo:
NSMutableString* mStr = [NSMutableString stringWithString:someTextFieldIbOutlet.text];
L'errore effettivo che si stanno ottenendo è causato perché il primo argomento di NSLog dovrebbe essere la stringa "format", che racconta NSLog come si desidera formattare il dati che seguono in argomenti successivi. Questa dovrebbe essere una stringa letterale (creata come @"this is a literal string"
) in modo che non possa essere utilizzata per sfruttare il programma apportando modifiche.
Invece, usate questo:
NSLog(@"%@", mStr);
In questo caso, la stringa di formato è @"%@"
che significa "Creare un oggetto NSString
impostato %@
". %@
significa che l'argomento successivo è un oggetto e sostituire %@
con la descrizione dell'oggetto (che in questo caso è il valore della stringa).
I bug di formato si presentano perché le convenzioni di passaggio di argomento di C non sono sicure per tipo. –