为什么我得到'No -renderInContext:找到方法'警告?

时间:2011-01-22 20:59:00

标签: iphone ios

我在-renderInContext上收到编译器警告:

- (UIImage *) imageFromView:(UIView *)view {
    UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0);
    [view.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage * img = UIGraphicsGetImageFromCurrentImageContext();    
    UIGraphicsEndImageContext();
    return img; 
}

我在项目框架中有QuartzCore,代码可以工作。 如何修复代码,以便停止向我发出警告?

我得到的确切警告是

warning: no '-renderInContext:' method found
warning: (Messages without a matching method signature
warning: will be assumed to return 'id' and accept
warning: '...' as arguments.)

3 个答案:

答案 0 :(得分:33)

尝试将Quartz框架导入您的应用程序。

然后添加,

#include <QuartzCore/QuartzCore.h>

到你的申请。

答案 1 :(得分:2)

我想这是因为CALayer类标题位于QuartzCore框架中。

在Xcode中,在Frameworks组中,添加QuartzCore框架,它应该没问题。

然后,请参阅my post here on SO了解如何在每个源文件中包含头文件。现在它不是Core Data,而是QuartzCore(以完全相同的方式)

答案 2 :(得分:2)

您的项目中是否有QuartzCore.framework?