警告:“未找到 '-renderInContext' 方法”

Posted

技术标签:

【中文标题】警告:“未找到 \'-renderInContext\' 方法”【英文标题】:Warning: "No '-renderInContext' method found"警告:“未找到 '-renderInContext' 方法” 【发布时间】:2011-06-23 12:47:47 【问题描述】:

我有这段代码,它的工作方式完全符合预期:

UIGraphicsBeginImageContext(self.bounds.size);
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage* image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();   

但是,对于这一行:

[self.layer renderInContext:UIGraphicsGetCurrentContext()];

我收到警告(不是错误):

未找到“-renderInContext”方法。

如果该方法确实有效,我怎么能收到此警告?如果我只是简单地注释掉这一行,我的代码就会失败;很明显,这条线和方法实际上是有效的。

【问题讨论】:

【参考方案1】:

您需要添加对CALayer - #import <QuartzCore/QuartzCore.h> 的头文件的引用。您可能还需要将QuartzCore.framework 添加到您的项目中。

【讨论】:

【参考方案2】:

之所以这样说是因为编译器找不到该方法的定义。你需要添加这一行:

#import <QuartzCore/QuartzCore.h>

.m 文件的开头。您可能还需要将 QuartzCore 框架添加到您的项目中。

(您的应用工作的原因是该方法在运行时可用)

【讨论】:

【参考方案3】:

您可能拥有same issue as this guy。确保添加 QuartzCore。

【讨论】:

以上是关于警告:“未找到 '-renderInContext' 方法”的主要内容,如果未能解决你的问题,请参考以下文章

警告执行已完成,带有警告存储过程

怎么忽略KEIL的警告

IOS警告消除

Quick.db unwarn 命令取消警告成员中的所有警告

java程序中很多警告,如何修改掉?

将特定级别的所有警告视为错误,而不是下一级的警告