У меня есть массив UILabels следующим образом:
@interface ClueLabels : NSObject
@property (nonatomic) IBOutlet UILabel *label1, *label2, *label3, *label4, *label5, *label6, *label7, *label8;
@property (nonatomic, readonly) NSArray *labels;
+ (ClueLabels *)clueLabels;
- (void)labelsDidLoad;
@end
, который реализован как синглтон:
@implementation ClueLabels
@synthesize label1 = _label1;
@synthesize label2 = _label2;
@synthesize label3 = _label3;
@synthesize label4 = _label4;
@synthesize label5 = _label5;
@synthesize label6 = _label6;
@synthesize label7 = _label7;
@synthesize label8 = _label8;
@synthesize labels = _labels;
+ (ClueLabels *)clueLabels {
static ClueLabels *singleton;
static dispatch_once_t once;
dispatch_once(&once, ^{
singleton = [[ClueLabels alloc] init];
});
return singleton;
}
- (void)labelsDidLoad {
_labels = [[NSArray alloc] initWithObjects:_label1, _label2, _label3, _label4, _label5, _label6, _label7, _label8, nil];
NSLog(@"Clue labels did load");
}
@end
Затем сохранен в NSMutableDictionary следующим образом:
NSMutableArray *keyArray;
NSMutableArray *valueArray;
keyArray = [NSMutableArray arrayWithObjects:@"answerButtons", @"clueLabels", nil];
valueArray = [NSMutableArray arrayWithObjects: [AnswerButtons answerButtons], [ClueLabels clueLabels], nil];
NSMutableDictionary *externals = [NSMutableDictionary dictionaryWithObjects:valueArray
forKeys:keyArray];
Теперь я хочу записать метки (например, очистить их), но они похоронены в одиночном коде и сохранены в виде массива внутри словаря с ключевыми значениями.Концептуально мне нужно отправить сообщение одному объекту в словаре, используя синтаксис ключ-значение, а затем перебрать объекты в этом массиве, очистив их, например, с помощью setText @ "".Это вложенное сообщение с циклом?Я не могу понять, как структурировать эту задачу.Спасибо.
РЕДАКТИРОВАТЬ: я подумал и решил (возможно, неправильно), что, поскольку метки находятся в одиночном, мне вообще не нужен доступ к ним через словарь, мне просто нужен доступ ксинглтон и словарь будут обновляться автоматически.Поэтому я решил, что мой вопрос / проблема больше "как разговаривать с моим синглтоном".Я осмотрелась ТАК, а потом поняла, что могу сделать что-то вроде этого:
NSLog(@"%@", [ClueLabels clueLabels].labels)
, который возвращает детали каждого ярлыка.Я хотел бы иметь возможность получить количество меток, чтобы я мог зацикливать их и устанавливать для их заголовков произвольные строки.Могу ли я построить вокруг [ClueLabels clueLabels] .labels или мне нужен другой подход?Спасибо.