Увеличение NSNumber

Впервые в obj-C и Cocoa здесь

Я пытаюсь просто увеличить переменную в методе, и, используя C ++, я хочу просто использовать терминологию переменной ++, но это не работает с NSNumber, поэтому я придумал

player1Points = [NSNumber numberWithInt: ([player1Points intValue] + 1)];

У меня возникает соблазн просто повторно объявить player1Points как int в заголовке, но я хочу сохранить @synthesize и @property, чтобы мне не приходилось писать процедуры получения и установки.

Есть ли более простой способ написать эту строку кода?


person nukerebel    schedule 07.03.2013    source источник
comment
Вы можете использовать @synthesize и @property со свойством int.   -  person Carl Norum    schedule 08.03.2013
comment
Взгляните на класс NSNumber Ссылка   -  person Parag Bafna    schedule 08.03.2013


Ответы (3)


Вы все еще можете объявить его NSInteger, свойство также может быть примитивным типом:

@property (nonatomic,assign) NSInteger player1Points;

Вы все еще можете синтезировать это.

В качестве альтернативы есть новый синтаксис, который сделает использование NSNumber более удобным:

player1Points = @(player1Points.integerValue+1);
person Ramy Al Zuhouri    schedule 07.03.2013

Вы можете использовать примитивы как свойства, например:

@property (nonatomic, assign) int player1Points;
person Ned    schedule 07.03.2013

Согласитесь со всеми ответами, еще один вариант (хотя, возможно, из-за кодирования) - создать категорию на NSNumber с помощью метода экземпляра, называемого увеличением (или чем-то еще). Таким образом, вы можете разместить что-то вроде [player1Points increase]; в любом месте вашего приложения.

person Kaan Dedeoglu    schedule 07.03.2013