0

obj-C と Cocoa の初心者はこちら

メソッドで変数をインクリメントしようとしています.C++に慣れているので、変数++の用語を使いたいのですが、NSNumberでは機能しないので、

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

ヘッダーで player1Points を int として再宣言したくなりますが、get ルーチンと set ルーチンを記述する必要がないように、@synthesize と @property を維持したいと考えています。

このコード行をもっと簡単に書く方法はありますか?

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

すべての答えに同意します。もう 1 つのオプション (おそらくオーバー コーディング) は、NSNumberincrease (または他の何か) と呼ばれるインスタンス メソッドを使用してカテゴリを作成することです。したがって[player1Points increase];、アプリのどこにでも似たようなものを持つことができます。

于 2013-03-07T23:30:25.813 に答える