私はRPN計算機を作ることに関わる作業に取り組んでいます。私はダイナミックなプロジェクト内の別の場所からの操作で追加できるようにする機能のレジストリシステムの種類を実装する方が良いだろうと信じてクラスメソッド、状態を保存する、関数を登録するためのより良い方法
+ (NSSet *) noOpOperations {
return [NSSet setWithObjects:@"π", nil];
}
+ (NSSet *) unaryOperations {
return [NSSet setWithObjects:@"sin",@"cos",@"log",@"+/-", nil];
}
+ (NSSet *) binaryOperations {
return [NSSet setWithObjects:@"+",@"-",@"*",@"/", nil];
}
+ (NSSet *) operations {
/* surely there is a better way - is it possible to save this call and reuse it? Or what about having the objects register themselves so you can add operations more easily? */
return [[self noOpOperations] setByAddingObjectsFromSet:
[[self unaryOperations] setByAddingObjectsFromSet:
[self binaryOperations]]];
}
+ (BOOL) isOperation:operand {
return [[self operations] containsObject:operand];
}
:私は現在、文字列は以下のように操作されるかどうかを確認するには、クラスのメソッドを使用していますしかし、私はそれがクラス変数を必要とすると思います。私は今それをやっているよりもこれを行う良い方法はありますか?このような状況のため
'class variable'はどういう意味ですか? .mファイルには、__attribute __((コンストラクタ))関数を使用して初期化する静的変数が1つあります。 –
これはまさに私が探していたものです - ありがとう! –