我得到了这段代码:
- (void)ShowTypeOfExercises:(id)sender
{
NSString *lstrGroupTitle;
NSString *lstrGroupNumber;
if(([sender tag]) == 1)
{
lstrGroupTitle = NSLocalizedString(@" Chest", @"");
lstrGroupNumber = @" 1";
}
.
.
.
.
[lstrGroupNumber release];
[lstrGroupTitle release];
Exercises *objExercises = [[Exercises alloc] initWithNibName:@"Exercises" bundle:nil];
[self.navigationController pushViewController:objExercises animated:YES];
}
这个代码块在我第一次单击时工作正常,但在第二次单击时它总是崩溃。它崩溃了,因为令人惊讶的是,lstrGroupTitle获得了一个奇怪的值。在这个简单的函数中,它怎么可能得到错误的值?
注意:lstrGroupNumber工作正常。
答案 0 :(得分:0)
我不知道是否是这种情况,但即使[sender tag]!= 1,此代码也会调用release,并且根本没有分配变量。如果发生这种情况,可能会导致奇怪的值或崩溃。