like からa を抽出するための構文は次CGFloat
のようになります。NSDictionary
slider.minimumValue = [filterAttributes valueForKey:kCIAttributeSliderMin];
like からa を抽出するための構文は次CGFloat
のようになります。NSDictionary
slider.minimumValue = [filterAttributes valueForKey:kCIAttributeSliderMin];
NSDictionary
オブジェクトのみを保持します。どのような種類のオブジェクトがどのようなプリミティブをラップしCGFloat
ますか?NSNumber
理にかなっているでしょう。ここで、CGFloat
はafloat
またはaのいずれかであるため、精度/範囲を維持するために値をdouble
取得する必要があります。double
したがって:
slider.minimumValue = [[filterAttributes valueForKey:kCIAttributeSliderMin] doubleValue];
OBJECTS は NSDictionary (または NSARRAY) にのみ入れることができます。CGFloat はリテラル (float にマップするだけ) であるため、ディクショナリに入れたり、ディクショナリから取得したりすることはできません。
代わりに、オブジェクトである NSNumber (辞書に追加するとき) としてラップします。
NSNumber *sliderMin = [NSNumber numberWithFloat:kCIAttributeSliderMin]
または、新しい構文を使用して、NSNumber として@kCIAttributeSliderMin
orを自動ボックス化することができます。@(kCIAttributeSliderMin)
値を元に戻すには、オブジェクトを取得してNSNumber
から[myNumber floatVal]
、NSFloat
.
objectForKey
最後に、おそらく " " ではなく " "と言いたいでしょうvalueForKey
。
更新- 申し訳ありませんが、あなたの例でkCIAttributeSliderMin
はキーとして扱っています。私はそれを「値」として使用しています。しかし、あなたは要点を理解していると思います。NSNumber オブジェクトを格納します。NSNumber オブジェクトを取得します。スワップが原因で混乱が生じたことをお詫び申し上げます。