2010-02-27 3 views
1

Mon accident d'application lorsque je tente d'accéder à la propriété de mon NSDecimalNumber amount_before_current_year:plantage dur à l'aide [NSDecimalNumber stringValue]

[amount_before_current_year stringValue] 
Program received signal: “EXC_BAD_ACCESS”. 

L'objet est un NSDecimalNumber comme le montre l'image ci-jointe.

Je l'ai créé dans le viewDidLoad, il existe dans le fichier d'en-tête:

.h 
... 
    NSDecimalNumber *amount_before_current_year; 
... 
@property (nonatomic, retain) NSDecimalNumber *amount_before_current_year; 
... 

également dans le fichier de mise en œuvre:

@synthesize amount_before_current_year; 


    amount_before_current_year = [NSDecimalNumber decimalNumberWithString:@"100.00"]; 

ici je l'appelle à nouveau:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

NSString *test = [amount_before_current_year stringValue]; // HARD CRASH !!! 

alors, je ne sais pas quoi faire maintenant, j'ai passé quelques heures avec ça .....

des idées ??????

merci, r. alt text

Répondre

3

Vous devez soit conserver amount_before_current_year lorsque vous attribuez à, ou d'utiliser une notation de point pour lui assigner:

self.amount_before_current_year = [NSDecimalNumber decimalNumberWithString:@"100.00"] 

Puisque vous déclarez la propriété avec le conserver attribut, le poseur synthétisé envoie automatiquement un message de retenue, ainsi que la libération de toute valeur précédente. Je recommande cette approche.

+0

merci, cela fonctionne: \t amount_before_current_year = [[NSDecimalNumber decimalNumberWithString: @ "100.00"] retain]; temps de relire encore et encore l'objectif de base-C ... merci !!! – mongeta