0

这里是 obj-C 和 Cocoa 的新手

我试图在方法中增加一个变量,并且习惯于 C++,我只想使用变量 ++ 的术语,但这不适用于 NSNumber,所以我想出了

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

我很想在标题中将 player1Points 重新声明为 int,但我想保留 @synthesize 和 @property,这样我就不必编写 get 和 set 例程。

有没有更简单的方法来编写这行代码?

4

3 回答 3

7

您仍然可以将其声明为 NSInteger,属性也可以是原始类型:

@property (nonatomic,assign) NSInteger player1Points;

你仍然可以合成它。

或者,有一种新语法可以使 NSNumber 的使用更加舒适:

player1Points = @(player1Points.integerValue+1);
于 2013-03-07T23:23:31.803 回答
1

您可以使用原语作为属性,如下所示:

@property (nonatomic, assign) int player1Points;
于 2013-03-07T23:24:29.650 回答
0

同意所有答案,另一种选择(尽管可能过度编码)是NSNumber使用称为增加(或其他)的实例方法创建一个类别。所以你可以[player1Points increase];在你的应用程序的任何地方拥有类似的东西。

于 2013-03-07T23:30:25.813 回答