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];
}

このコードブロックは、最初にクリックすると正常に機能しますが、2回目のクリックでは常にクラッシュします。驚くべきことに、lstrGroupTitleが奇妙な値を取得するため、クラッシュします。この簡単な関数で、どうして間違った値を取得できるのでしょうか。

注:lstrGroupNumberは正常に機能します。

4

1 に答える 1

0

これが当てはまるかどうかはわかりませんが、このコードは [sender tag] != 1 で変数がまったく割り当てられていない場合でも release を呼び出します。これが発生すると、奇妙な値やクラッシュにつながる可能性があります。

于 2012-02-23T08:01:37.187 に答える