大家好,
我正在写下面的代码,但是我的应用程序崩溃了。我不知道why.Actually,我想计算速度,但应用程序在第4行崩溃了,.please explain.debugger说。
程序接收到信号:“EXC_BAD_ACCESS”。
- (void)viewDidLoad {
[super viewDidLoad];
NSDate *date = [NSDate date];
initialDate = date;
}
-(void) showSpeed
{
[self.initialDate retain];
NSDate *endDate = [NSDate date];
NSTimeInterval interval = [endDate timeIntervalSinceDate:self.initialDate];
//NSLog(@"time %f",interval);
double speed ;
speed = distance/interval;
NSString *speedValue = [NSString stringWithFormat:@"%1.2f",speed];
showResult.text = speedValue;
[self.initialDate release];
}发布于 2010-06-24 21:55:26
在存储initialDate时,您可能没有保留它。
[NSDate date]返回一个自动释放的对象,您需要保留它或使用保留属性。
在viewDidLoad代码可用后编辑:
您需要保留[NSDate date]提供给您的对象,因为它是自动释放的。
- (void)viewDidLoad {
[super viewDidLoad];
initialDate = [[NSDate date] retain];
}不过,没有理由在showSpeed中保留/释放它。
我再怎么推荐苹果的内存管理指南也不为过--它真的很重要,值得多读一遍。:-)
https://stackoverflow.com/questions/3110530
复制相似问题