0

我得到了这段代码:

- (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 工作正常。

4

1 回答 1

0

我不知道是否是这种情况,但是即使 [sender tag] != 1 并且根本没有分配变量,此代码也会调用 release。如果发生这种情况,可能会导致奇怪的值或崩溃。

于 2012-02-23T08:01:37.187 回答