Meine app ist mir zu sagen, dass ich über-Releasing unter der NSDecimalNumber tempDouble:über Freigabe eine NSDecimalNumber
NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init];
[currencyFormatter setLocale:[NSLocale currentLocale]];
[currencyFormatter setGeneratesDecimalNumbers:TRUE];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
// Here is the key: use the maximum fractional digits of the currency as the scale
int currencyScale = [currencyFormatter maximumFractionDigits];
NSDecimalNumber* tempDouble = [[NSDecimalNumber alloc] initWithString:self.tempStore];
NSDecimalNumber* numTen = [[NSDecimalNumber alloc] initWithInt:10];
tempDouble = [tempDouble decimalNumberByDividingBy:[numTen decimalNumberByRaisingToPower:currencyScale]];
[numTen release];
[textField setText:[currencyFormatter stringFromNumber:tempDouble]];
[currencyFormatter release];
[tempDouble release];
Ich denke, dass das Problem Linie dies ist:
tempDouble = [tempDouble decimalNumberByDividingBy:[numTen decimalNumberByRaisingToPower:currencyScale]];
Aber ich bin mir nicht sicher warum. Sollte ich nach der Zuweisung ein Attribut "zuweisen, kopieren oder behalten" hinzufügen? Wenn ich die unten stehende "Release" -Anweisung loslasse, funktioniert der Code einwandfrei.
Danke,
G
Welche Sprache ist das? Bitte sagen Sie mir, dass ich sein Tag ignorieren kann. –