2013-10-28 3 views
-2

보기 컨트롤러에 여섯 개의 레이블이 있고 for 루프에 여섯 개의 문자열이 다음과 같이 표시됩니다.iOS : for 루프의 다른 레이블에 메시지 전달

for(NSDictionary *dictionary in array) 
{ 
    NSString *name = dictionary[@"Name"]; 
    NSLog(@"Name = %@ \n", name); 
} 

로그에 이름이 올 때마다 다른 이름의 레이블 (6 개)을보기 컨트롤러에 보내려고합니다.

이름 개체/메시지를 레이블로 전달하는 방법은 무엇입니까? 당신은 각각의 반복에 대한 다른 이름/결과를 얻을 수 및

는 루프에서 1 이름을 돌려 라벨에 그 반복 값을 전달, 게시물 1

루프에 대한 2 번째로 이름을 가져옵니다 라벨, 포스트는 2 라벨을합니다 등등 ..

당신은 해당 UILabel 요소 이름의지도를 만들 수
+2

당신이 말하는 중량 내가 '제대로 이해할 수있다. 간단히 말해 주실 수 있습니까? – TamilKing

+0

이름 개체/메시지를 레이블로 전달하는 방법은 무엇입니까? 각 반복마다 다른 이름/결과를 얻고 반복 된 값을 레이블에 전달합니다. –

답변

2
NSArray *lbls = [[NSArray alloc] initWithObjects:lbl1, lbl2, lbl3, lbl4, lbl5, lbl6, nil]; 

int i=0; 
for(NSDictionary *dictionary in array) 
{ 
    UILabel *lbl = (UILabel *)[lbls objectAtIndex:i++]; 
    [lbl setText:dictionary[@"Name"]; 
} 
0

:

YourClass.h :

@interface YourClass : UIViewController { 
    NSMutableDictionary *_labelMap; 
    IBOutlet UILabel *_label1; // Connected in IB 
    IBOutlet UILabel *_label2; // Connected in IB 
    IBOutlet UILabel *_label3; // Connected in IB 
    IBOutlet UILabel *_label4; // Connected in IB 
    IBOutlet UILabel *_label5; // Connected in IB 
    IBOutlet UILabel *_label6; // Connected in IB 
} 

...

YourClass.m :

@implementation YourClass { 

- (void)viewDidLoad { 
    // Not done in init, as you need the labels to be connected once the NIB is loaded 
    _labelMap = [[NSMutableDictionary alloc] init]; 
    _labelMap[@"Name1"] = _label1; 
    _labelMap[@"Name2"] = _label2; 
    _labelMap[@"Name3"] = _label3; 
    _labelMap[@"Name4"] = _label4; 
    _labelMap[@"Name5"] = _label5; 
    _labelMap[@"Name6"] = _label6; 
    ... 
} 

- (void)yourMethod { 
    for(NSDictionary *dictionary in array) 
    { 
     NSString *name = dictionary[@"Name"]; 
     NSLog(@"Name = %@", name); // Don't need to add newline! 
     UILabel *field = _labelMap[name]; 
     field.text = name; 
    } 
}