Создание ДОБИРАЕТСЯ и Запросы POST из приложения для iPhone - Необходимое Разъяснение

Чтобы решить эту проблему, у вас есть два варианта на выбор, насколько я вижу;

Разрешить только глобальные сообщения в p:growl

Первый вариант - сделать [113 ]. Это переведет рычание PrimeFaces в режим, в котором он только слушает события AJAX и сообщения, которые не имеют определенного идентификатора клиента. С помощью этого метода добавление for=id к компоненту / запросу приведет к тому, что он будет показан только в месте назначения (например, внутри p:message, а не в рычании.

<p:calendar id="calendar">
    <p:ajax global="false" event="dateSelect" />
</p:calendar>

<p:message for="calendar" />
<p:growl globalOnly="true" />

Явно используйте <p:growl for="id"/> ]

Второй способ - заставить рычание слушать только сообщения с определенным идентификатором клиента. Это будет выглядеть примерно так:

<p:calendar id="calendar">
    <p:ajax event="dateSelect" />
</p:calendar>

<p:message for="calendar" />
<p:growl for="someotherId" />

В зависимости от ваших целей разработки, вы будете предпочитать одно или другое в качестве основного решения. Второе решение будет фильтровать и игнорировать сообщения лиц без какого-либо назначения, так как нет компонента для их получения. Это может быть или не быть желательным.

5
задан Community 23 May 2017 в 12:00
поделиться

3 ответа

Вы возвратите код состояния в didReceiveResponse

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
    NSHTTPURLResponse *httpResponse;
    httpResponse = (NSHTTPURLResponse *)response;
    int statusCode = [httpResponse statusCode];
    //statusCode will be the http code returned like 201,500
 }

Для остановки соединения используйте переменную уровня класса для соединения. Лучший способ пойти об этом был бы, создают обертку, которая отправляет запросы и получает ответ. Сделайте свой viewcontroller делегатом этого класса и каждый раз, когда didReceiveResponse дает код состояния ошибки, назовите соответствующий метод делегата и остановите соединение.

Вот хороший пример класса обертки

http://kosmaczewski.net/projects/objective-c-rest-client/

4
ответ дан 14 December 2019 в 09:03
поделиться

Да, необходимо выпустить тот объект. См. Руководство по программированию управления памятью для Какао. В основном, если Вы когда-нибудь создаете объект с именем метода, которое начинается alloc или new или содержит copy, Вы становитесь владельцем объекта и ответственны за освобождение его позже. Только в случае, где Вы знаете, что испытываете необходимость в объекте вплоть до завершения программы, это хорошо для не освобождения его, в этом случае операционная система исправляет память, когда приложение завершается.

Если Вам только нужен объект в небольшом объеме, можно отправить его autorelease сообщение. Это добавит его к пулу автовыпуска. Пул автовыпуска периодически отправляет a release обменивайтесь сообщениями к каждому объекту в нем. Это отчасти сложно; посмотрите раздел по пулам автовыпуска. Например:

В этом случае, тем не менее, потому что NSURLConnections являются асинхронными, автовыпуск не будет работать. Вы не знаете точно, когда это собирается перезвонить в Ваш объект с данными, таким образом, Вы хотите удостовериться, что объект еще не был выпущен. Единственный способ быть уверенным состоит в том, чтобы знать точно, когда Вы сделаны с объектом и затем отправляете ему a release передайте себя.

Все различные init* функции возвращают указатель на данный объект, таким образом, можно просто сделать:

NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
...
// when done with connection:
[connection release];
3
ответ дан 14 December 2019 в 09:03
поделиться

Ответ на вопрос в "обновлении"...

Сразу автовыпустите NSURLConnection. Объект соединения сохраняется NSRunLoop (к которому он добавляет себя автоматически, если Вы не используете startImmediately:NO конструктора). Это будет автоматически удалено из выполненного цикла (и следовательно dealloc'd) на ошибке или конце.

0
ответ дан 14 December 2019 в 09:03
поделиться
Другие вопросы по тегам:

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