Согласно Qt doc ( https://doc.qt.io/qt-5/qthread.html#exec ), exec()
означает вход в цикл обработки событий и ожидание выхода называется. Вероятно, поэтому коды, следующие за exec()
, реализуются после выхода из приложения.
Джерси, RESTEasy и Restlet утверждают, что выполняют то, что вы просите. Я только попробовал Рестлет, и я подумал, что это довольно неприятно.
Spring 3 еще не вышел в финальную версию, но сборка M2 кажется довольно солидной, и там есть REST. Если бы я создавал новое веб-приложение REST, я бы, вероятно, рискнул с M2.
Yes, Jersey is rather good and based on your description would do exactly what you want.
I wouldn't wait for Spring-WS-thing -- Jersey is good, and I don't know what benefits there are to Spring alternative, beyond "Spring brand". To me JAX-RS (that jersey implements) is a very good example of choosing and using best components that implement open APIs; Jersey runs on (amongst other things) any servlet container, can use best XML/JSON/etc parsers, use pluggable validation (bean validation api) and so forth. Same should be true for other JAX-RS implementations too (like Resteasy).
Я использовал и зафиксировал некоторые исправления для CXF. Он поддерживает JAX-RS и полностью настраивается с помощью spring. Здесь есть хороший учебник:
http://cwiki.apache.org/CXF20DOC/jax-rs.html
CXF - это проект apache, и поскольку JAX-RS является стандартом, у вас не должно возникнуть проблем с отходом от это, если у вас возникнут трудности.
Надеюсь, это поможет.
Все объясняется в UIViewController Class Reference . Особенно ознакомьтесь с разделом Поворот вида вверху.
Из справки:
-121--2580054-Обработка поворотов вида
По умолчанию класс UIViewController отображает только виды в портретном режиме. Для поддержки дополнительных ориентаций, необходимо переопределить
shuldAutorotateToInterityOrientation:
метод и возврат YES для любого ориентации, поддерживаемые подклассом. Если свойства autoresizing вашего представления сконфигурированы правильно, что возможно, это все, что вам нужно сделать. Однако класс UIViewController обеспечивает дополнительные крючки для реализации дополнительные варианты поведения по мере необходимости.Временное отключение функций, которые не нужны или могут иначе вызвать проблемы во время ориентации change, можно переопределить
willRotateToInterityOrientation: длительность:
метод и выполнение необходимых действий там. Затем можно переопределитьDidRotate, интерфейс Ориентация:
метод и использовать его для повторного включения этих элементы после изменения ориентации завершено.Если требуется выполнить пользовательские действия анимации во время ориентации change, вы можете сделать это в одном из двух способы. Изменения ориентации, используемые для выполняются в два этапа, с уведомлениями происходящее в начале, середине, и конечные точки вращения. Однако в iPhone OS 3.0 поддержка была добавлено для делать ориентации изменения в один шаг. Использование одношагового изменение ориентации имеет тенденцию быть быстрее по сравнению со старым двухэтапным процессом и обычно рекомендуется для любых новых код.
Добавление анимации для одного шага изменить ориентацию, переопределить
willAnimateRotationToInterityOrientation: длительность:
метод и выполнение анимации там. Использование более старых двухшаговых , переопределить один или оба изwillAnimateFirstInstancedOfRotationToInterityOrientation: продолжительность:
иwillAnimateSecondExondOfrotationStartInterityOrientation: длительность:
методы настройки анимации перед каждым шагом. Необходимо выбрать только один метод и переопределить только методы, связанные с техника. Если переопределить либо способ, связанный с двухэтапным техника, контроллер вида использует этот метод по умолчанию.
Команда corelist из модуля Module:: CoreList определяет, является ли модуль основным.
> corelist Carp
Carp was first release with perl 5
> corelist XML::Twig
XML::Twig was not in CORE (or so I think)
Вот один из способов использовать его в сценарии. Модуль :: CoreList
POD слишком тернистый - вы должны пройти поиск исходного кода, чтобы найти, какие методы назвать:
use strict;
use warnings;
use Module::CoreList;
my $mod = 'Carp';
#my $mod = 'XML::Twig';
my @ms = Module::CoreList->find_modules(qr/^$mod$/);
if (@ms) {
print "$mod in core\n";
}
else {
print "$mod not in core\n";
}
__END__
Carp in core
-121--1042491- Я пытался с Restlet, RestEasy, Jersey, CXF, Spring. Вот мои отзывы:
Restlet: Kind of nasty с собственным набором аннотаций. И немного сбивает с толку. Тем не менее, нельзя винить, поскольку они смотрели на реализацию этого еще до того, как там был JAX-RS.
RestEasy/Джерси/CXF:Так же легко, как и его название. Просто и прямо вперед, чтобы начать работать над этим. Хорошая часть для этих 3 рамок заключается в том, что, поскольку они совместимы с JAX-RS, любое время в будущем может быстро вернуться к таким другим рамкам, совместимым с JAX-RS, если их делать лучше или еще лучше соответствует вашим потребностям
Весна: Весна 3 начали поддерживать API REST. Но сделайте не то, чтобы он НЕ совместим с JAX-RS, по той же причине, что и для Restlet.
Поэтому я бы выбрал только из RestEasy/Jersey/CXF.