0

私のアプリでは、コンソールに次のエラーが表示されます。

May  1 22:06:59 iPhone-4S app[93660] <Error>: CGContextAddPath: invalid context 0x0
May  1 22:06:59 iPhone-4S app[93660] <Error>: clip: invalid context 0x0

これが発生する可能性がある唯一の領域は、サイズを変更するか、UIImage に丸みを帯びたエッジを追加する次の 2 つの方法のいずれかです。メソッドは次のとおりです。

- (UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize {
    // Create a graphics image context
    UIGraphicsBeginImageContext(newSize);

    // Tell the old image to draw in this new context, with the desired
    // new size
    [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];

    // Get the new image from the context
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();

    // End the context
    UIGraphicsEndImageContext();

    // Return the new image.
    return newImage;
}

- (UIImage*)roundCorneredImage: (UIImage*)orig radius:(CGFloat) r {
    UIGraphicsBeginImageContextWithOptions(orig.size, NO, 0);
    [[UIBezierPath bezierPathWithRoundedRect:(CGRect){CGPointZero, orig.size} 
                                cornerRadius:r] addClip];
    [orig drawInRect:(CGRect){CGPointZero, orig.size}];
    UIImage* result = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return result;
}

どちらのメソッドも UIViewControllers 内から呼び出され、UIImage が nil ではないことは確かです。

これが起こる理由はありますか?

ありがとう!

4

1 に答える 1

6

コンテキスト サイズがゼロでないことを確認してください。

于 2012-05-02T05:49:07.707 に答える