ipad: сбой вне приложения не является исключением? - PullRequest
1 голос
/ 28 марта 2012

У меня ужасный сбой в приложении, который я пытаюсь решить уже несколько дней.Код NSURLRequest для отправки запроса в веб-сервис.Я уже использую веб-сервис в производстве и просто добавил этот новый сервисный запрос.Наконец-то я добавил @try ... @catch вокруг кода, вызывающего сбои, и он по-прежнему вылетает из приложения и ничего не «ловит».

Как мне отладить это?

Я использовал кодпроверка, включая рецензирование.

Код выглядит следующим образом ... где "httpClient" - это объект NSO с:

id                      _delegateConnection;
id                      _delegateReceiver;
NSURLConnection         *connection;
NSMutableURLRequest     *urlServiceRequest;
NSMutableString         *bodyRequest;
NSHTTPURLResponse       *httpResponse;
NSMutableData           *responseData;
NSError                 *error;

@try {
    [httpClient setDelegateReceiver: self];
    [httpClient buildRequest: dictParameters];
    [httpClient executeRequest];
}
@catch (NSException *exception) {
    NSLog(@"%s: %@", __FUNCTION__, exception);
}
@finally {
    // Add code here ...
}

1 Ответ

0 голосов
/ 29 марта 2012

Я обнаружил проблему, и это было благодаря удаче и проверке кода в другой части кода («где свет был лучше»:)

Как оказалось, у меня есть словарь параметров, которые записываются в строку JSON, добавляемую в тело HTTP объекта urlServiceRequest, указанного в моем примере кода. В конце концов я наткнулся на то, что контейнер параметров (NSObject, а не NSDictionary) не был "retained", поэтому, вероятно, он был "autoreleased", хотя все еще упоминался в моем методе buildRequest, путем публикации 1007 *.

Плохое управление памятью с моей стороны сбило меня с толку в устранении неполадок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...