делегировать свойство назначить проблему, RestKit RKRequest - PullRequest
0 голосов
/ 29 июля 2011

свойство «назначить» и «сохранить» для делегата

Я знаю, что лучше использовать «назначить», но я использую в случае, если лучше использовать сохранение.

Я вызываю веб-сервис, создавая объект RKRequest.

RKRequest *request = [[RKClient sharedClient] get:urlString delegate:self];

Сам объект запроса сохраняется и управляется одноэлементной очередью запросов, поэтому меня не волнует объект запроса, и я беспокоюсь только о методах делегатов.

есть методы обработки результатов запроса.


Эти коды находятся в UIViewController, и сам контроллер представления является делегатом.

Если контроллер представления становится неактивным во время обработки запроса, RKRequest вызывает делегат, который является мертвым указателем, и происходит сбой программы.

, поэтому я должен сохранить RKRequest и назначить nil для делегирования, когда контроллер представления освобождается.

Более того, я должен выпустить RKRequest, когда запрос будет выполнен или не выполнен.


но я не думаю, что если RKRequest имеет указатель делегата в качестве указателя «сохранить», как я могу управлять этими объектами КРАСИВЫМ?

1 Ответ

4 голосов
/ 30 июля 2011

Все, что нужно, это добавить следующий вызов в метод dealloc вашего контроллера (RKRequestDelegate):

[[RKRequestQueue sharedQueue] cancelRequestsWithDelegate:self];
...