簡體   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