私はココアを学びたいと思っていて、私が若者で遊んだ非常に単純なゲームを開発したいと考えていました。それはもともとMS Basicで作成されました。私はココアと客観的なCをとても新しくしています。ココアのプロパティと合成
私はデフォルトと呼ばれる作成とオブジェクトを持っています。それは、3つの整数変数、惑星、戦闘機、および選手を格納します。
フロントエンドには、デフォルト値がさまざまな3つのドロップダウンボックスがあります。
は、私は同様の値を設定する方法としてKVCを理解したかったが、私は次のような警告が...
「互換性のない整数型のパラメータに 『INT』を送信ポインタに 『int型*』
を取得します[新しいコード]
DEFAULTS.H
の#importの#import
@interface Defaults : NSObject {
int fighters;
int planets;
int players;
}
@property (assign) int fighters;
@property (assign) int planets;
@property (assign) int players;
@end
ここでは私のコントローラでの実装の抜粋です。
#import "DefaultsController.h"
#import "Defaults.h"
@implementation DefaultsController
- (id)init
{
self = [super init];
if (self) {
// Initialization code here
Defaults *theDefaults = [[Defaults alloc] init];
NSLog(@"Planets: %@",[theDefaults valueForKey:(@"planets")]);
}
return self;
}
-(void)dealloc
{
[super dealloc];
[Defaults release];
}
-(void) awakeFromNib{
}
-(IBAction) addPlanets:(id)sender{
[theDefaults setValue:[planetsButton titleOfSelectedItem] forKey:@"planets"];
[theDefaults setPlanets:[[planetsButton titleOfSelectedItem] intValue]];
theDefaults.planets = [[planetsButton titleOfSelectedItem] intValue];
NSLog(@"Planets: %i", theDefaults.planets);
NSLog(@"%@", [planetsButton titleOfSelectedItem]);
NSLog(@"%i", [[planetsButton titleOfSelectedItem] intValue]);
}
私が間違って何をやっていますか?
ポップアップボタンの値はどうですか。私はこれが文字列だと思う。これをINTにキャストする必要がありますか?これを行う正しい方法ですか? – Axwack
ボタンのラベルを読み込んで数値として使用する場合は、文字列を数値として解釈する関数を呼び出す必要があります。これは、キャストとは異なります。 '-intValue'はそれを行います。 –
すべてのポインタ型を値に変更しました。これで問題は解消されましたが、値を設定することはできません。ドロップダウンからintに値を取得するために何か特別なことがありますか? – Axwack