+ [Синхронизация CATransaction] вызывается внутри транзакции

MVP - not обязательно сценарий, в котором отображается представление (см., например, MVP Taligent). Мне доставляет сожаление, что люди по-прежнему проповедуют это как образец (вид в целом), а не анти-шаблон, поскольку он противоречит «Это просто взгляд» (прагматический программист). «Это просто представление» указывает, что конечное представление, отображаемое пользователю, является вторичной проблемой приложения. Microsoft MVP-шаблон делает повторное использование Views намного более сложным, а удобно оправдывает конструктор Microsoft от поощрения плохой практики.

Чтобы быть абсолютно откровенным, я думаю, что основные проблемы MVC верны для любой реализации MVP, и различия почти полностью семантичны. До тех пор, пока вы будете разделять проблемы между представлением (которое отображает данные), контроллер (который инициализирует и контролирует взаимодействие с пользователем) и модель (базовые данные и / или услуги)), тогда вы получаете преимущества MVC , Если вы получаете преимущества, то кто действительно заботится о том, является ли ваш шаблон MVC, MVP или контролером? Единственная реальная модель остается как MVC, остальные - просто разные ее ароматы.

Рассмотрим эту очень интересную статью, в которой полно перечислены некоторые из этих различные реализации. Вы можете заметить, что все они в основном делают одно и то же, но немного по-другому.

Я лично считаю, что MVP недавно был вновь представлен как броский термин, чтобы либо уменьшить аргументы между семантическими фанатиками, которые утверждают, действительно MVC или нет, или для оправдания инструментов быстрой разработки приложений Microsoft. Ни одна из этих причин в моих книгах не оправдывает его существование как отдельный шаблон дизайна.

30
задан Hiren 25 April 2012 в 05:20
поделиться

1 ответ

Это может появиться в журналах, если вы используете UIWindow.rootViewController, чтобы вообще пропустить раскадровки.

Чтобы отключить сообщение журнала, вы можете удалить раскадровку, убрав ключ, связывающий раскадровку с вашим приложением, в info.plist, установите LaunchScreen.storyboard в качестве Main Interface в цели и используйте

window = UIApplication.shared.keyWindow!

внутри AppDelegate, чтобы получить основной window и присвоить ему UIViewController.

0
ответ дан Fabian 25 April 2012 в 05:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: