我有以下代碼作爲UIImage + Scale.h類別。(iphone)我從圖像創建一個新的圖像時,創建一個泄漏?
-(UIImage*)scaleToSize:(CGSize)size
{
UIGraphicsBeginImageContext(size);
[self drawInRect:CGRectMake(0, 0, size.width, size.height)];
// is this scaledImage auto-released?
UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return scaledImage;
}
我使用上面獲得的圖像,並使用它如下。
UIImage* image = [[UIImage alloc] initWithData: myData];
image = [image scaleToSize: size]; <- wouldn't this code create a leak since
image(before scaling) is lost somewhere?
我想上面的代碼工作,如果圖像首先用自動釋放創建。
但如果圖像是使用「的alloc」創建的,它會造成在我短暫的知識泄漏。
我應該如何改變scaleToSize:警惕呢?
謝謝
- 編輯 -
我想使用頁頭(或保留)上的UIImage /釋放,這樣我可以在一個點小保留的UIImage的#內存。
(我正在加載很多UIImages在一個循環中,設備不能接受它)
由於當我修改圖像,大部分時間,我想改變圖像本身,而不是創建一個新的。我希望改變scaleToSize:。最近,我意識到的UIImage是相當大的內存的消費者,並希望保持在內存小的UIImage *的數量。或者至少使用alloc/release來代替autorelease。 – eugene 2011-01-08 16:08:52