Увеличаване на NSNumber

Ново в obj-C и Cocoa тук

Опитвам се просто да увелича променлива в метод и тъй като съм свикнал с C++, искам просто да използвам терминологията на променлива++, но това не работи с NSNumber, така че измислих

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

Изкушавам се просто да предекларирам player1Points като int в заглавката, но искам да запазя @synthesize и @property, така че да не се налага да пиша get и set рутинни процедури.

Има ли по-лесен начин да се напише този ред код?


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