Я знаю, что этот вопрос очень простой, но, как программист на Java, я смущен, почему это значение становится равным нулю? У меня есть UITableView, и я пытаюсь отправить выбранный номер строки в целевой UIViewController. Однако, это еще до отправки этого значения он становится равным нулю в prepareForSegue
Почему NSNumber становится нулевым от одной функции до другой функции?
NSNumber* val;
/*segue*/
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath*)indexPath {
//Perform a segue.
[self performSegueWithIdentifier:@"toInfo"
sender:[items objectAtIndex:indexPath.row]];
val = [[NSNumber alloc] init];
val = [NSNumber numberWithInt:indexPath.row];
NSLog(@"val111 === %@",val); >>>Here prints 2
}
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// [self performSegueWithIdentifier:@"toInfo" sender:sender];
NSLog(@"inside segue");
NSLog(@"val222 === %@",val); >>> Here prints null
InfoViewController *vc = [segue destinationViewController];
vc.journeyId = val;
}
, потому что вы назначаете значение val после выполнения функцииSegueWithIdentifier –