2014-04-15 3 views
-3

맞춤 색상이 UIColor에 의해 정의되고 변수가 색상 (예 : colorWithAlpha : balfa)에 사용 된 경우 변수는 사용되지 않고 알파 대신 goto 값이 기본값으로 사용됩니다.iOS 색상은 사용자 정의 값을 사용할 수 있습니까?

예 : 알파 값을 자동으로 사용자가 높거나 낮은 것을 슬라이더의 값을 변경에도 (디폴트로 정의)은 0.42로 설정되어이 경우

NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:@"/var/mobile/Library/Preferences/com.app.me~prefs.plist"]; 

static CGFloat bart; 

static void PrefLoad() 
{ 
    bart = [dict objectForKey:@"bartf"] ? [[dict objectForKey:@"bartf"] floatValue] : 0.42; 
} 

UIColor *color = [UIColor colorWithRed:0 green:0 blue:0 alpha:bart]; 

.

해결 방법에 대한 의견이 있으십니까?

+0

이 질문은 명확하지 않습니다. 무슨 문제가 있습니까? 당신은 말하지 않습니까? [dict objectForKey : @ "bartf"]'는 항상'nil'입니까? – rmaddy

+0

@rmaddy no, bartf는 항상 0.42 (두 번째 줄 끝 부분) –

+1

입니다. 즉 [dict objectForKey : @ "bartf"]'는 항상 nil입니다. 'dict'이'nil'이 아니라는 것을 확인 했습니까? 그렇다면, 키'@ "bartf"'에 대한 값을 포함합니까? – rmaddy

답변

0

문제는 사전에 bartf 값을 설정하는 코드에 있습니다.

THIS :

바트 = 딕셔너리의 objectForKey : @ "bartf"]? [[dict objectForKey : @ "bartf"] floatValue] : 0.42;

은 절대로 변경되지 않는 이유를 설명합니다. [dict objectForKey : @ "bartf"] 은 항상 null입니다.입니다.

코드가 해당 사전을 올바르게 업데이트하고 있는지 확인하십시오. 디버그하려면 다음을 추가하십시오.

NSLog (@ "% @", dict);

이 사전을 만든 다음 값이 있는지 확인하십시오.

1

NSNumber *bartNum = dict[@"bartf"]; 
NSLog(@"bartNum = %@", bartNum); 

static CGFloat bart; 

bart = [dict objectForKey:@"bartf"] ? [[dict objectForKey:@"bartf"] floatValue] : 0.42; 

UIColor *color = [UIColor colorWithRed:0 green:0 blue:0 alpha:bart]; 

에 코드를 변경하고 디버그 창에 있습니까 무엇을 게시

.

+0

17:29 : bartNum = (null) –

+0

ok. 그래서 당신의 dict은 @ "bartf"에 대한 객체를 포함하지 않습니다. 문제는 게시 한 코드가 아니라 다른 곳에서 게시했습니다. – Avt

+0

NSLog (@ "dict = % @", dict)를 사용할 수 있습니다. dict가 유효하고 어떤 값에 포함되어 있는지 확인하십시오. – Avt