Добавление self.view
к этим методам гарантирует, что представление действительно загружено и инициализировано.
Производный объект UIViewController
обычно не будет загружать фактическое представление, пока его не заставят это сделать.Обычно, когда это представление добавляется в суперпредставление / окно.
Обращаясь к представлению контроллера представления таким образом, вы принудительно загружаете это представление.
Three20 делает это в установщиках и получателях свойств для обхода ошибочного потока программы.
Предположим, что он этого не делал, и давайте также предположим, что вы вызываете один из этих сеттеров / получателей до того, как представление (и его подпредставления) будут инициализированы.В результате, например, метод setBody: попытается присвоить данную строку объекту nil.Он не будет аварийно завершать работу, но также не будет иметь никакого эффекта.
Однако такой способ работы с контроллерами представления приводит к обходу при отложенной загрузке подключенных представлений.В целом, не нужно беспокоиться, это будет работать должным образом, но я бы всегда рекомендовал не делать это так, как это делает Three20.Не сопротивляйтесь «исправлению» этих предупреждений, удаляя эти строки, поскольку Three20 сам полагается на эти побочные эффекты своих методов получения.Согласно комментарию от xlc0212, вы можете, однако, изменить эти строки на [self view];
, результат останется, но предупреждения исчезнут.
По моему опыту, хотя Three20 будет выдавать предупреждения как сумасшедшие на Xcode4 / LLVM3вы, как правило, не должны сталкиваться с реальными проблемами.Это никогда не подводило меня.