私は使用する機能を持っています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???
私の質問は
- variable はどこで解放できます
str
か?
通常は call の直後に解放できます[self _handleMessage:str]
が、dispatch_async はステートメントを実行するため、
[self.delegate webSocket:self didReceiveMessage:message];
非同期に (おそらくしばらくしてから)、不正なアクセス エラーを考えています。この場合、メモリを管理する最良の方法は何ですか?
まだ疑問がある場合は、私は古い学校の男で、ARC を使用していません。