Есть еще один способ сделать это, используя ответ Джоэлса в сочетании с KVC (кодирование значения ключа).Я не знаю, является ли это особенно хорошим подходом, но я включил его для полноты:
NSDictionary * playerDict = [NSDictionary dictionaryWithObjectsAndKeys:
@"K1player1D",@"K1scoredLabel1",
@"K1player1L",@"K1scorelLabel1",
@"K1player1K",@"K1scorekLabel1",
@"K1player1Q",@"K1scoreqLabel1",
@"K1player1T",@"K1scoretLabel1",nil];
for(NSString * key in [playerDict allKeys]){
NSString *labelName = [playerDict objectForKey:key];
UILabel *label = [self valueForKey:labelName]; // grab the correct label using KVC
label.text = [[NSUserDefaults standardUserDefaults] objectForKey:key];
}
Это может быть упрощено, если имена меток соответствуют ключам в NSUserDefaults (тогдаВы можете просто использовать массив имен вместо словаря).