3

特定のインデックスに対して特定のUIColorを返す必要があります。
基本的にUIColorsをNSArrayとして保存しようとしています

TypeColors = [[NSDictionary alloc] initWithObjectsAndKeys:

@ "1"、[NSArray arrayWithObjects:[NSNumber numberWithFloat:0.5]、[NSNumber numberWithFloat:0.5]、[NSNumber numberWithFloat:0.5]、[NSNumber numberWithFloat:1.0]、nil]、

@ "5"、[NSArray arrayWithObjects:[NSNumber numberWithFloat:1.0]、[NSNumber numberWithFloat:0.5]、[NSNumber numberWithFloat:0.1]、[NSNumber numberWithFloat:1.0]、nil]、nil]; //オブジェクトとキーの終わりを示すnil。

そしてここで、その辞書からUIColorを取得したいと思います。

a = 5;
NSArray* colorArray = [TypeColors objectForKey:a];
UIColor* color = [UIColor colorWithRed:[colorArray objectAtIndex:0]
green:[colorArray objectAtIndex:1] blue:[colorArray objectAtIndex:2] 
alpha:[colorArray objectAtIndex:3]];

それは常に私にゼロを返します、誰かが理由を知っていますか?ありがとう!

4

3 に答える 3

1

に変更します

UIColor* color = [UIColor colorWithRed:[[colorArray objectAtIndex:0] floatValue]
green:[[colorArray objectAtIndex:1] floatValue] blue:[[colorArray objectAtIndex:2] floatValue] 
alpha:[[colorArray objectAtIndex:3] floatValue]];

そこに送信されるパラメータは NSNumber ではなく cgfloat です

于 2012-10-01T17:20:15.033 に答える
1

2つのこと:

1) の順序は、initWithObjectsAndKeysオブジェクトとそのキーです。はい、直感的に逆です。

2) キーは整数では5なくNSString @"5".

于 2012-10-01T17:24:29.110 に答える