Juste une question simple sur NSStrings, j'ai un morceau de code qui attribue une valeur à une chaîne, en fonction de ce qui est trouvé soit une valeur par substringToIndex ou la chaîne constante @ "0.00", est-il correct d'utiliserNSString Assignment & Retaining
// Save if value found, otherwise set to 0.00
if (parsedCharacters == nil || [parsedCharacters isEqualToString:@""])
self.currentDiscountedPrice = @"0.00";
else
{
// Truncate extra digits from string to 2 decimal places (find full stop, save 2 places after it)
NSRange fullStopRange = [parsedCharacters rangeOfString:@"."];
self.currentDiscountedPrice = [parsedCharacters substringToIndex:(fullStopRange.location + 3)];
}
pour l'affectation car il libérera l'ancienne valeur & conserver la nouvelle valeur?
Il est impossible de savoir si la variable constante a été affectée à la variable constante ou si la valeur retournée par substringToIndex dans l'itération précédente est conservée.
Ce que je vous demande essentiellement est, dans le code ci-dessus dois-je libérer plutôt explicitement l'ancienne valeur et conserver la valeur substringToIndex ou il correct d'utiliser juste self.currentDiscountedPrice = pour les deux missions? –
OT: au lieu de 'parsedCharacters == nil || [parsedCharacters isEqualToString: @ ""] ', j'écrirais' parsedCharacters.length == 0'. En raison de la sémantique message-à-zéro d'Objective-C, cela détectera «nil», il est probable qu'il soit légèrement plus rapide pour les non-nulles, et bien sûr plus simple. –