我的應用程序在動畫中使用大量縮放圖像。爲了避免跳幀,我縮放我的圖像並保存它們,然後運行動畫。這裏是我的代碼保存圖像:使用UIImagePNGRepresentation保存圖像時的內存問題
+ (void)saveImage:(UIImage *)image withName:(NSString *)name {
NSData *data = UIImagePNGRepresentation(image);
NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *directory = [paths objectAtIndex:0];
NSString *fullPath = [directory stringByAppendingPathComponent:name];
[fileManager createFileAtPath:fullPath contents:data attributes:nil];
}
不幸的是,當我反覆調用這個函數,我有內存問題。我想我試圖保存大約10MB的圖像。我在想,也許問題在於自動發佈的變量 - 也許我應該分配數據,並在最後發佈。但我找不到UIImagePNGRepresentation
的分配版本。誰能幫忙?
收到來自@occulus和@Tommy wrt的好答案。 autoreleased的變種 - 但似乎並沒有解決問題,我想知道是否有其他事情可以成爲原因!? – iPadDeveloper2011 2011-03-07 03:37:09
我想我現在明白了這個問題。我需要有一個autorelease池,當我_scale_圖像,以及當我保存它們。 – iPadDeveloper2011 2011-03-07 04:27:11