2012-05-02 145 views
0

在我的應用程序,我得到以下錯誤控制檯:CGContextAddPath控制檯錯誤?

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的唯一地區。下面是方法:

- (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的不是零。

這是否有任何理由發生?

謝謝!

回答

6

確保上下文大小不爲零。

+0

你的意思是我加入它的CGSize和/或半徑參數? –

+0

是的,如果你調用UIGraphicsBeginImageContextWithOptions與零大小,你會得到完全相同的錯誤,所以我認爲你的上下文是空的。 –