проблема назначения свойства делегата, RestKit RKRequest

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

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

Я вызываю веб-службу, создавая объект RKRequest.

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

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

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


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

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

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

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


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


person moon6pence    schedule 29.07.2011    source источник


Ответы (1)


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

[[RKRequestQueue sharedQueue] cancelRequestsWithDelegate:self];
person jeffarena    schedule 29.07.2011
comment
ах, я ошеломлен! Большое тебе спасибо! - person moon6pence; 01.08.2011