int получает значение null, несмотря на инициализацию - PullRequest
1 голос
/ 29 февраля 2012

У меня есть это int, которое я объявляю в моем .h файле следующим образом:

@interface searchResultsViewController : UIViewController {
  int selectedEvent;
}

@property (nonatomic) int selectedEvent;

Содержит выбранную строку в таблице. Когда пользователь нажимает на строку, здесь устанавливается int:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    self.selectedEvent = [indexPath row];
}

А затем перешли на этот метод здесь:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    if ([segue.identifier isEqualToString:@"detailView"]) {
        NSLog(@"%@", self.selectedEvent);
    }
}

Однако в этом методе NSLog возвращает ноль. Я не редактирую int в любой другой части файла, и я @synthesize добавляю его вверху файла. Я не совсем уверен, что происходит, кто-то может объяснить, пожалуйста?

Спасибо

1 Ответ

4 голосов
/ 29 февраля 2012

int не является объектом, поэтому, когда вы используете %@, компьютер ищет что-то по адресу памяти независимо от того, на что установлен int, и когда ничего не находит, возвращает null,Для регистрации int используйте %d.Например:

NSLog(@"%d", self.selectedEvent);

Другие допустимые типы: %@ для объекта (NSString, NSDictionary, NSArray и т. Д.), %f для double, %uдля unsigned int и т. д.

Подробнее здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...