当我尝试访问我的NSDecimalNumber amount_before_current_year的任何属性时,我的应用程序崩溃:
[amount_before_current_year stringValue]
Program received signal: “EXC_BAD_ACCESS”.
对象是NSDecimalNumber,如附图所示。
我在viewDidLoad中创建了它,它存在于头文件中:
.h
...
NSDecimalNumber *amount_before_current_year;
...
@property (nonatomic, retain) NSDecimalNumber *amount_before_current_year;
...
也在实现文件中:
@synthesize amount_before_current_year;
amount_before_current_year = [NSDecimalNumber decimalNumberWithString:@"100.00"];
在这里我再次称呼它:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *test = [amount_before_current_year stringValue]; // HARD CRASH !!!
所以,我现在不知道该怎么做,我花了几个小时的时间......
任何想法??????
感谢, 河
答案 0 :(得分:3)
您需要在分配时保留amount_before_current_year,或使用点符号分配给它:
self.amount_before_current_year = [NSDecimalNumber decimalNumberWithString:@"100.00"]
由于您使用retain属性声明了属性,因此合成的setter将自动发送保留消息,并释放任何先前的值。我推荐这种方法。