NSInteger! = Ноль - PullRequest
       16

NSInteger! = Ноль

13 голосов
/ 25 января 2011

Как я могу проверить, что NSInteger действителен?

NSInteger previousScore = [[self score] integerValue];
    if (previousScore != nil) {
        //do something
    }

Ответы [ 2 ]

14 голосов
/ 25 января 2011

Если вы хотите проверить правильность своего кода, вы должны сделать что-то вроде:

NSNumber *previousScore = [self score];

if ( previousScore != nil ) {
  NSInteger previousScoreValue = [previousScore integerValue];
  // do something
}

Это работает, когда вы получаете объект, а не примитивное значение.

13 голосов
/ 25 января 2011

NSInteger не является объектом.Это просто типизированный примитив int.Следовательно, оно никогда не будет nil.Просто относитесь к нему так же, как если бы вы использовали int прямо вверх.

Редактировать: Чтобы пояснить комментарий Сезара, на 64-битных системах NSInteger на самом деле long а в 32-битных системах это int.

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