繁体   English   中英

NSMutableString的这种用法是否会导致内存泄漏?

[英]Is this usage of NSMutableString a memory leak?

我当前正在使用实例变量,该变量是NSURLConnection的委托类中的NSMutableString。 该变量负责构建从委托方法返回的数据字符串:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 

字符串,“富”,有一个属性设定保留就可以了。 它在我的课init方法alloc'd非常直接以这种方式:

dataString = [[NSMutableString alloc] init];

它在类dealloc方法中发布。

在连接:didReceiveData :,我使用var这样的:

    NSString *tmpString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    [dataString appendString:tmpString];
    [tmpString release];

现在这是棘手的地方。 因为在这里我设置的NSURLConnection的委托类是单(它主要处理NSURL *类型的呼叫),我需要怎么我再利用我的对象内容一定要小心。 因此,在我的connectionDidFinishLoading:类中,我具有以下内容:

   // cache away data currently in dataString.
[dataString release];
dataString = [[NSMutableString alloc] init];

处理我的dataString的策略是否会让您流血? 我正在泄漏内存吗? 我能做些什么这是聪明?

您是否要问我们应用程序中对对象的 每次 使用是否都是内存泄漏?

阅读文档。 了解对象所有权的规则,您每次都会得到答案。

如果怀疑泄漏,请运行Instruments的ObjectAlloc探针。 您已经做过一次 ,很清楚您知道如何做。 还有泄漏命令

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM