Вы потеряете большие классы с несколькими обязанностями. Вы также, вероятно, потеряете большие методы с несколькими обязанностями. Можно потерять некоторую способность осуществить рефакторинг, но Вы также потеряете часть потребности осуществить рефакторинг.
Jason Cohen сказал что-то как: TDD требует определенной организации по Вашему коду. Это могло бы быть архитектурно неправильно; например, так как закрытые методы нельзя назвать вне класса, необходимо сделать методы нечастными для создания их тестируемыми.
я говорю, что это указывает на пропущенную абстракцию - если частный код действительно должен быть протестирован, это должно, вероятно, быть в отдельном классе.
Dave Mann
Если вы не используете NIB, то как выглядит ваш метод -loadView? Это должно выглядеть так:
- (void)loadView
{
UIWebView* webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
webView.delegate = self;
self.view = webView
[webView release];
}
В этом случае начальный кадр не имеет значения. UIViewController позаботится о правильном изменении размера вашего представления.
Однако, если вы действительно хотите вставить веб-представление (или любое другое представление) в родительское представление, вы используете autoresizeMask для управления изменением размера вашего представления с его родительским.
Например:
UIView* parentView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 200)];
parentView.autoresizesSubviews = YES;
UIWebView* webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
webView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[parentView addSubview:webView];
self.view = parentView;
[parentView release];
В этом случае начальный фрейм webView относится к границам parentView.