- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个用于连接 httprequests 的类。我收到“NSMutableData”的内存泄漏,尽管我在连接对象的“didFailWithError”和“connectionDidFinishLoading”中释放它:
- (BOOL)startRequestForURL:(NSURL*)url {
[url retain];
NSMutableURLRequest* urlRequest = [[NSMutableURLRequest alloc] initWithURL:url];
// cache & policy stuff here
[[NSURLCache sharedURLCache] removeAllCachedResponses];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setHTTPShouldHandleCookies:YES];
NSURLConnection* connectionResponse = [[[NSURLConnection alloc] initWithRequest:urlRequest delegate:self] autorelease];
if (!connectionResponse)
{
// handle error
return NO;
} else {
receivedData = [[NSMutableData data] retain]; // memory leak here!!!
}
[url release];
[urlRequest release];
return YES;}
- (void)connection:(NSURLConnection*)connection didFailWithError:(NSError*)error {
UIAlertView *alert =
[[[UIAlertView alloc]
initWithTitle:NSLocalizedString(@"Connection problem", nil)
message:NSLocalizedString(@"A connection problem detected. Please check your internet connection and try again.",nil)
delegate:self
cancelButtonTitle:NSLocalizedString(@"OK", nil)
otherButtonTitles:nil, nil]
autorelease];
[alert show];
[connectionDelegate performSelector:failedAction withObject:error];
[receivedData release];}
- (void)connectionDidFinishLoading:(NSURLConnection*)connection {
[connectionDelegate performSelector:succeededAction withObject:receivedData];
[receivedData release];}
最佳答案
静态分析器会将此称为泄漏,因为您无法保证具有 release
功能的任何一个方法实际上都会被调用。
如果您将 receivedData
设置为保留属性,并且执行以下操作
self.receivedData = [NSMutableData data];
然后在你的 dealloc 中(还有 didFail 和 didFinish,而不是释放):
self.receivedData = nil;
你会没事的。
正如 jbat100 所指出的,如果 !connectionResponse,您还会泄漏 url 和 urlRequest,除非您从问题中省略了此代码
关于iphone - NSMutableData 的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7659711/
我正在将一个大文件读入 NSMutableData 对象。 var lBuffer : NSMutableData = try NSMutableData(contentsOfFile: pFileP
我正在我的应用程序中进行 JSON 解析,当我使用 responseData = [NSMutableData data]; 它在 [responseData setLength:0] 上崩溃; -
我在函数中使用下面提到的行 NSMutableData *data = [[NSMutableData alloc] init]; 我很快就调用了这个函数(例如 100 次)。所以我的问题是,最初它
我有一个用于连接 httprequests 的类。我收到“NSMutableData”的内存泄漏,尽管我在连接对象的“didFailWithError”和“connectionDidFinishLoa
我使用下面所示的代码下载了该文件。然后我尝试将 NSMutableData 变量保存到文件中,但是,该文件未创建。我究竟做错了什么?我需要将 NSMutableData 转换为 NSString 吗?
我在使用 NSMutableData 时遇到一个问题。 我定义了一个 NSMutableData *receivedData,并尝试将多个 NSData* 数据复制到 receivedData。我刚刚
我的应用程序从服务器获取一些json数据,并使用NSMUtableData对象存储这些数据。 但是调试器报告以下错误: [NSCFString setLength:]: unrecognized se
我正在尝试从响应中获取数据。 我正在使用NSURLConnectionDelegate,NSURLConnectionDataDelegate。 该项目使用ARC。 @interface MainMe
我正在尝试将图像上传到工作正常的 yFrog,但我只想从响应中获取 URL。当我使用 NSURLConnection 方法时 - (void) connectionDidFinishLoading:(
您好,我正在尝试创建一个我想通过网络发送到服务器的数据包,我几乎已经对数据包进行了排序,但是它缺少一个长度标识符,我需要在我的方法结束时计算它并添加放入数据包。 数据包结构是这样的 前导值标识符 (U
让我开始说吧,我是 iOS/Xcode 编程的新手,所以我什至不知道该问什么。我正在尝试向应用程序添加一个静态库,但我以崩溃告终。库包有一个.h 文件和一个.a 文件。我正在询问有关如何继续解决问题的
我将如何附加这个二进制字符串 111000111000111111000111000111 到包含 png 的 NSMutableData 对象(NSMutableData *dataForPNGFi
这个问题已经有答案了: 已关闭10 年前。
在我的程序中,我有一个 NSMutableData 变量,用于收集来自 http://www.nhara.org/scored_races-2013.htm 的信息。 .大约第三次从网站获取信息后,当
我正在尝试快速将一个字节附加到 NSMutable 数据变量,我正在寻找一种更简单的方法。相关的 Objective-C 代码是: NSMutableData *data = [[NSMutableD
NSMutableData *requestData = (NSMutableData*)[request responseData]; 返回 “[{JSON_STRING}]” 所以我想去掉“[”/
我有一个被多次调用的函数,它创建数据通过 tcp 发送到服务器。我想我在某个地方丢失了数据。 我想知道什么是正确的方法: 在程序开始时使用finalData=[[NSMutableData alloc
我正在尝试通过资源库上传一个大小为 100MB 的视频。但是当我尝试使用 -(NSUInteger)getBytes:(uint8_t *)buffer fromOffset:(long long)o
我使用 NSMutableData 对象来存储表示系列数据的 32 字节结构列表。这些系列可能会被扩展、添加、对齐等。为了节省不必要的对象分配,我尝试将字节扩展并附加到现有对象,而不是分配新对象。 我
我希望能够确定 NSMutableData 实例中的字节数是否等于零。我该怎么做? 最佳答案 简单: if([data length] == 0) { //do something } 其中 da
我是一名优秀的程序员,十分优秀!