【发布时间】:2015-04-08 12:33:54
【问题描述】:
我正在尝试将图像数据上传到服务器,它已成功上传,但每次上传图像时都会出现内存峰值。还上传了 20 多张图片,让 App 关闭并收到内存警告。
如何解决这个问题?
编辑: 我正在使用 NSURLConnection。
image = [params valueForKey:key];
partData = UIImageJPEGRepresentation([ImageUtility getQualityFilterImage:[params valueForKey:key]], 0.8f);
if([partData isKindOfClass:[NSString class]])
partData=[((NSString*)partData) dataUsingEncoding:NSUTF8StringEncoding];
[body appendData:partData];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[urlRequest setHTTPBody:body];
【问题讨论】:
-
您应该向我们展示您是如何进行上传的。如果您将
NSURLSession上传任务与文件或流(而不是NSData)一起使用,您将缓解此问题。关键是避免在任何给定时间点将整个资产加载到内存中。 -
如何上传图片?请把代码放在这里。
-
另外,使用 Instruments 分配工具而不是 Xcode 中的仪表。它可以更准确地衡量实际发生的情况(而且您可以准确地看到导致内存增长的原因)。
-
@Vishu 如果可能,请在此处发布您的代码。
-
因为您在询问我们如何修复您的代码,但您没有与我们分享您的代码,尽管有很多请求。你必须向我们展示你在做什么(或者更好,MCVE)。您在使用
NSURLConnection、NSURLSession、AFNetworking 等吗?鉴于您正在使用的特定技术,您是如何使用它的?现在,您只是向我们展示了问题的症状,而不是问题的根源。
标签: ios objective-c xcode uiimage memory-pressure