Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
MyViewController* controller = [MyViewController initWithNibName:NSStringFromClass([MyViewController class] bundle:nil];
MyViewController* controller = [MyViewController initWithNibName:nil bundle:nil];
if (iPad) {
[KingViewController initWithNibName:@"KingViewController"];
} else {
if (iPhone5) {
[KingViewController initWithNibName:@"KingViewController-568h"];
} else {
[KingViewController initWithNibName:@"KingViewController-480h"];
}
}
someButton.center = newCenterCGPoint;[UIView animateWithDuration:0.3f animations:^{
someButton.center = newCenterCGPoint
}];[self.view layoutIfNeeded];Вы плотно работаете с CoreData?
Именно поэтому я буду использовать инструменты, позволяющие выявлять ошибки на стадии компиляции.
Я ценю свое время.
Вы часто изменяете reuseIdentifiers / storyboardID? Вы переименовуете имена пропертей? Вы плотно работаете с CoreData?
Вы работаете с CoreData, но будете продолжать писать FetchRequest-ы оперируя строковыми константами, вместо того, чтобы использовать библиотеки, которые на порядки уменьшат количество кода (и соответственно ошибок), таких как ActiveRecord for Core Data
Если вы 60% времени боритесь с ошибками в зависимостях — значит что-то с процессом выбора библиотек не так.
А по поводу переноса шаблонов из других языков — нельзя их бездумно переносить, если они лишают Вас каких-то возможностей динамичного рантайма ObjC.
Что Вы теряете в описанных в статье случаях? Вместо @«someProperty» будет @keypath(object.someProperty)? Серьезно? Да в этом любой джуниор за полчаса разберется.
Избавляемся от строковых констант в Objective-C