3

漏れがあり、どこにあるかわかりません。

これは私のコードの一部です:

+ (UIImage *) imageWithColor:(UIColor *) color andSize:(CGSize) size {

    UIGraphicsBeginImageContext(size);
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetFillColorWithColor(context, color.CGColor);
    CGContextFillRect(context, CGRectMake(0, 0, size.width, size.height));

    UIImage *colorImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();    

    return colorImage;
}

そして、返された UIImage を UIProgressView のトラックと進行状況の画像として使用します

UIImage* trackImage = [ImageUtils imageWithColor:[UIColor blackColor] andSize:CGSizeMake(self.myProgressView.frame.size.width, 3)];
UIImage* progressImage = [ImageUtils imageWithColor:[UIColor whiteColor] andSize:CGSizeMake(self.myProgressView.frame.size.width, 3)];

[self.myProgressView setTrackImage:trackImage];
[self.myProgressView setProgressImage:progressImage];

しかし、どういうわけか、Progress View を含むオブジェクトをリリースした後、UIGraphicsGetImageFromCurrentImageContext を指すリークが発生します。どうすれば修正できますか?

4

1 に答える 1

-3

完了したら、コンテキストを解放する必要があります。以下を追加してみてください

CGContextRelease(context);
于 2013-06-06T18:41:14.860 に答える