我有一个使用的功能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