J'ai le morceau de code suivant d'un livre.devrait être libéré ou non variable? iphone-sdk
Il existe cette fonction loadPrefs dans laquelle le NSString * userTimeZone est libéré avant la fin de la fonction.
Pourquoi? La chaîne n'a pas été créée avec alloc et je suppose que la fonction stringForKey renvoie un NSString autoeleased. Est-ce une erreur ou ai-je oublié quelque chose? Est-ce une erreur dans le livre? (I nouveau en Objective-C)
Dans la documentation pour stringForKey la seule chose qu'il mentionne est:
Considérations particulières
échange de la remise chaîne est immuable, même si la valeur vous avez défini à l'origine une chaîne mutable .
Le code:
- (void) loadPrefs {
timeZoneName = DefaultTimeZonePref;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *userTimeZone = [defaults stringForKey: TimeZonePrefKey];
if (userTimeZone != NULL)
timeZoneName = userTimeZone;
[userTimeZone release];
show24Hour = [defaults boolForKey:TwentyFourHourPrefKey];
}
Merci !!!!
De quel livre s'agit-il? Juste pour que nous puissions l'éviter ... –
iPhone SDK Development. Cependant, c'est un très bon livre, malgré cette erreur de code. – psebos