Использование строки в качестве имени для установки значений свойств
298 просмотра
1 ответ
У меня есть эти большие огромные повторяющиеся куски кода в моем проекте, я пытаюсь уменьшить их. Возьмите этот пример:
self.Day11.delegate = (id)self;
self.Day12.delegate = (id)self;
self.Day13.delegate = (id)self;
self.Day14.delegate = (id)self;
self.Day15.delegate = (id)self;
self.Day16.delegate = (id)self;
self.Day17.delegate = (id)self;
self.Day18.delegate = (id)self;
self.Day19.delegate = (id)self;
То, что я хотел бы сделать, это сделать так, чтобы я мог использовать цикл for или что-то подобное, чтобы уменьшить его следующим образом:
for (int i = 1 ; i<=9; i++) {
NSString *var = [NSString stringWithFormat:@"Day1%d",i];
self.var.delegate = (id)self;
}
Я знаю, что это не работает, есть ли способ сделать что-то подобное?
Автор: user1953754 Источник Размещён: 13.11.2019 11:46Ответы (1)
4 плюса
Нет нет нет.
@property (nonatomic,strong) NSArray *arrayOfDays;
Теперь избавьтесь от всех этих дневных объектов и заполните их тем, self.arrayOfDays
чем являются все эти отдельные дневные объекты ...
Затем...
for(int i=0; i<[self.arrayOfDays count]; ++i) {
[[self.arrayOfDays objectAtIndex:i] setDelegate: self];
}
Или даже лучше, если все эти объекты имеют одинаковый тип (я предполагаю, что они имеют тип Day
), мы можем сделать:
for(Day *day in self.arrayOfDays) {
day.delegate = self;
}
Лучший (согласно комментарию Дай-Дана):
[self.arrayOfDays setValue:self forKeyPath:@"delegate"];
Автор: nhgrif
Размещён: 18.01.2014 09:43
Вопросы из категории :
- ios Приложение для iPhone в ландшафтном режиме, системы 2008
- ios Как мне дать моим веб-сайтам значок для iPhone?
- ios Как программно отправить смс на айфон?
- ios Как я могу разработать для iPhone, используя машину для разработки Windows?
- ios Tips for a successful AppStore submission?
- ios Как мне определить размер UITextView для его содержимого?
- ios iPhone viewWillAppear не стреляет
- ios Как показать индикатор загрузки в верхней строке состояния
- ios Как сохранить картинку в фотобиблиотеку iPhone?
- ios Как отключить выбор UITableView?
- objective-c Открытие нестандартного URL в приложении Какао
- objective-c Каков наилучший способ перетащить NSMutableArray?
- objective-c Как работает пул автозапуска NSAutoreleasePool?
- objective-c Как вы можете создать Makefile из проекта Xcode?
- objective-c Скругленные углы на UIImage
- objective-c Как мне создать временный файл с Какао?
- objective-c Как распечатать трассировку стека на консоль / журнал в Cocoa?
- objective-c @class vs. #import