У меня есть функция, которая использует dispatch_async
iphone: управление памятью с dispatch_async
- (void)_handleMessage:(id)message{
dispatch_async(_callbackQueue, ^{
[self.delegate webSocket:self didReceiveMessage:message];
});
}
Я называю эту функцию как этот
NSString *str = [[NSString alloc] initWithData:frameData encoding:NSUTF8StringEncoding];
[self _handleMessage:str]
//[str release]; <== Can I release str here???
Мой вопрос
- Где я могу выпустить переменная
str
?
Обычно я могу освободить только после вызова [self _handleMessage:str]
, но так как dispatch_async выполняет оператор
[self.delegate webSocket:self didReceiveMessage:message];
асинхронно (возможно, через какое-то время), я рассматриваю плохую ошибку доступа. Каков наилучший способ управления памятью в этом случае?
Если вы все еще возникают сомнения, я старая школа парень, а не с помощью ARC
Как окончательный ответ, поскольку он получает .. Спасибо sergio .. Примите, как только stackoverflow позволит мне это сделать. – Krishnabhadra
@ Krishnabhadra: рад помочь ... – sergio