gpt4 book ai didi

ios - 自定义 CIKernel 和 iOS7

转载 作者:行者123 更新时间:2023-11-29 02:21:47 24 4
gpt4 key购买 nike

我有一个支持同时运行 iOS 7 和 8 的设备的 iOS 项目(项目部署目标:7.0),我最近开始使用 iOS 8 中引入的新 API 实现自定义 CIKernel。

虽然代码在每个 iOS 8 设备上编译和运行都没有问题,但每次我尝试在 iOS 7 设备上运行它时都会收到此错误:

dyld: Symbol not found: _OBJC_CLASS_$_CIColorKernel
Referenced from: /var/mobile/Applications/...
Expected in: /System/Library/Frameworks/CoreImage.framework/CoreImage
in /var/mobile/Applications/...

生成错误的代码是这样的:

kernel = [CIColorKernel kernelWithString:kernelStr];

kernelWithString: 方法是在 iOS8 中引入的,如 CIKernel.h 声明的那样:

__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);

所以我的问题是:如何让应用程序在 iOS 7 和 8 设备上运行,并且只为 iOS 7 设备禁用我的自定义 CIKernel 功能?那可能吗?

请注意,我已将项目设置中的 CoreImage.framework 从“必需”更改为“可选”,并且该应用程序在 iOS7.0 设备上运行,但说实话感觉真的很糟糕。

我还尝试了预处理器命令:__IPHONE_OS_VERSION_MIN_REQUIRED__IPHONE_OS_VERSION_MAX_ALLOWED 但这些命令仅对编译时有用。

有什么线索吗?

最佳答案

尝试使用这个:

Class colorKernelClass = NSClassFromString(@"CIColorKernel");
kernel = [colorKernelClass kernelWithString:str];

关于ios - 自定义 CIKernel 和 iOS7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28057644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com