Si potrebbe avere una NSMutableString (o una sottoclasse NSString sviluppata in proprio) che si desidera duplicare.
NSMutableString *buffer = [NSMutableString string];
// do something with buffer
NSString *immutableStringToKeepAround = [NSString stringWithString:buffer];
Naturalmente, si può anche solo fare una copia:
NSMutableString *buffer = [NSMutableString string];
// do something with buffer
NSString *immutableStringToKeepAround = [[buffer copy] autorelease];
ma è proprio la copia e devono liberare o autorelease esso.
fonte
2009-10-23 23:25:43
Una piccola distinzione è che [[nil copy] autorelease] restituirà nil, ma [NSString stringWithString: nil] genererà un'eccezione. –
Cool, non lo sapevo! Informazioni utili –