2012-05-14 3 views
1

매우 흥미로운 문제가 생겼습니다. UILabel과 여러 라벨 속성이 있습니다. 각 속성에 해당하는 값이 레이블에 대해 설정됩니다. 이 속성 값은 사전에 있습니다 (키 - 값 쌍). "텍스트"로 키 - 값 쌍이 있습니다. "abc"(여기서 텍스트는 키이고 abc는 설정해야하는 해당 텍스트입니다). 나는 myLabel.text =를 사용하고 싶지 않다. 여기에있는 값이 어떤 배열이나 nsstring에서도 올 수있는 것과 마찬가지로이 속성이 동적이기를 원합니다. 다음은 내가 원하는 샘플입니다.사전에서 UIlabel 속성 이름을 설정하십시오.

NSMutableDictionary *tryDict = [[NSMutableDictionary alloc]init]; 
[tryDict setObject:@"abc" forKey:@"text"]; 
UILabel *lblName = [[UILabel alloc]init]; 
NSArray *allKeys = [tryDict allKeys]; 
NSArray *allValues = [tryDict allValues]; 
NSSTring *textProp = [allKeys objectAtIndex:0]; 
lblName.textProp = [allValues objectAtIndex:0]; // giving an error since textProp is not a UIlabel property. 

이 방법이 있습니까?

답변

2

[lblName setValuesForKeysWithDictionary:tryDict]이 방법은 필요한 것입니다.

+0

감사합니다. 한가지 더 도와 주실 수 있습니까? 레이블 (위의 경우 lblName)의 이름을 배열 또는 NSString 변수에서 가져오고 싶습니다. 가능한가? – anshul

+0

Objective-C 런타임 참조에서 뭔가를 찾을 수 있습니다. 하지만 당신은'lblName'과 같은 키를 가진 UILables를 포함하는 사전을 가지고 있어야한다고 생각합니다. –

관련 문제