私はカスタムクラスのインスタンスを作成する際に、initが設定するのに役立つ値を渡しています。私はインスタンス化されたオブジェクトのプロパティにこの値を格納し、それに関連付けされるUIImageのファイル名を生成するために、値を使用したいobjective-c NSStringのNSIntegerとメソッド呼び出しに関する質問
- (id)initWithValue:(NSInteger *)initialValue;
:私は実際のinitオーバーライドされたし、それを変更しました。
私の質問は、これをCocoa/Obj-Cでどのようにするのが最善かです。 NSIntegerは私のニーズにとって最適なパラメータですか、NSStringはより良いでしょうか? 別のデザインパターンがありますか?私は、この状況で役立つ創造的な方法すべてに精通していません。
@interface MyView : UIView {
UIImage *image;
NSInteger value;
私は、パラメータとしてNSIntegerに固執するならば、私は簡単に値を割り当てることができます。私のクラスのプロパティであると仮定します。しかし、その値から "image12.png"を生成する必要があります(NSInteger = 12と仮定)。 「画像」のようなもの+ initialValue +「。png」
NSString *myValue = @"image";
[myValue stringByAppendingString:[initialValue stringValue]]; //NSInteger may not respond to stringValue?!?
[myValue stringByAppendingString:@".png"]
のObj-Cの私の理解が故障した場所です:どの私は信じては冗長にとのObj-Cで表されます。このような気がするのは簡単だが、私はまだ混乱している。
ここで、initialValueが@ "12"の値を持つNSStringであったとしますか?次に、self.value = [initialValue integerValue];
と私は画像を複数のstringByAppendingString呼び出しでビルドすることができました。他の言語ではとてもシンプルなものは単なる退屈なようです。
このようなものを処理するにはどうすればよいですか?
NSNumberにNSIntegerをラップするのは良い点です! – Tim
NSIntegerが10.5で登場したので、実際にはnumberWithInteger:メソッドがあります。NSUserDefaultsのような場所にも同様のメソッドがあります。 –
ありがとうMarc - 私はポストを更新しました –