我从iOS 4.0开始编译并使用以下代码:
if(UIGraphicsBeginImageContextWithOptions != NULL)
{
UIGraphicsBeginImageContextWithOptions(drawCopyFS.frame.size, NO, 0.0);
}
else
{
UIGraphicsBeginImageContext(drawCopyFS.frame.size);
}
当我切换到4.3 SDK时,这段特殊代码停止编译时出现以下两个错误:
'UIGraphicsBeginImageContextWithOptions' undeclared (error on line #1)
Implicit declaration of function 'UIGraphicsBeginImageContextWithOptions' (error on line #7)
任何人都有任何想法为什么会这样? 4.3中有什么变化,或者我该如何解决这个问题?
Xcode不会像UIGraphicsBeginImageContextWithOptions
一样着色UIGraphicsBeginImageContext
,同时也不会为它提供任何快速帮助。
答案 0 :(得分:0)
首先确保Base SDK设置为使用项目信息中的最新版本。如果这不起作用,请继续阅读。
我在UIBackgroundTaskIdentifier中遇到了类似的问题,它在4.0中引入并在SDK更新之前编译得很好。原来,Xcode试图使用iOS 3.2 SDK中的标头。构建过程的控制台输出显示旧的头文件搜索路径已传递到编译器,即使Base SDK最明确地设置为项目信息中的最新版本。
重新加载项目没有帮助。重新启动Xcode没有任何效果。有报告称,过去的更新需要手动编辑项目文件。但是,当我在文本编辑器中打开项目文件时,我发现SDKROOT变量已正确设置为最新的SDK路径。
在我的案例中有用的是关闭Xcode,将源代码控制中的“MyProject.xcodeproj / project.pbxproj”文件恢复到更新SDK之前的一个点,然后重新启动Xcode并打开项目。
答案 1 :(得分:0)
我遇到了与该符号相同的问题,还有一堆其他符号,选择器和宏。与其他响应者一样,清除所有内容并删除预编译的头文件并没有解决它。也没有改变SDK。修复它的是从模拟器构建切换到设备构建,然后切换回来。