加载CiFilter时遇到麻烦

| 这个问题可能也与其他首次使用CIFilter的作者有关。 我需要有关更新Mac OS X视频播放器QTKit应用程序(基于QTKitPlayer)以使用CIFilter的建议。我已经阅读了Image Unit和Core Image指南。而且我已经成功使用[CIPlugIn loadAllPlugIns]加载并运行了内置CIFilters应用程序。 我还成功编写了我的第一个CIFilter,将其包装为图像单元,并将其放入/ Library / Graphics / Image Units 而且我已经使用Quartz Composer成功地对其进行了测试,该软件可以加载并成功运行。我也已成功将其加载到Core Image Fun House中。 但是,更改后的QTKitPlayer应用程序不会加载我的CIFilter。断点显示所有内置的CIFilter已加载,但我的过滤器未加载。 由于我是编写和使用CIFilter的新手,因此我担心自己一定错过了一些Core Image初始化代码,QTMovieView nib标志,编译器标志或其他东西。在调用loadAllPlugins之前,我需要做任何设置吗? 这是代码: [CIPlugIn loadAllPlugIns]; CIFilter * ciFilter = [CIFilter filterWithName:@ \“ MyDistortionWarp \”]; 我检查一下是否加载了: NSArray * filterList = [CIFilter filterNamesInCategories:[NSArray arrayWithObject:kCICategoryDistortionEffect]] ;; 在调试期间,我的CIFilter没有出现在QTKitPlayer派生类中的filterList中。但是,将相同的代码插入Core Image Fun House src,表明filterList确实包含我的过滤器。 FunHouse还将ciFilter设置为过滤器,但我的应用仅设置为Nil。 QTKit应用程序缺少什么,它需要加载CIPlugin?     
已邀请:
感谢您的答复。 此后,我已经解决了这个问题。 事实证明,这是XCode中32位与64位构建问题。 我的项目针对Release版本设置为32位和64位插件二进制文件。 但是,通常将Debug构建设置为仅构建“本机”二进制文件。由于项目要么很旧,要么是示例代码项目的变更,所以我花了一段时间才意识到问题出在旧版本设置中,而不是新更改的代码中。 [CIPlugIn loadAllPlugIns]仅加载与应用程序二进制兼容的插件。因此,一个32位应用程序将看不到仅针对64位构建的CIFilter。而且,64位应用程序不会看到仅为32位系统构建的插件。等等,以我为例,FunHouse可以加载我的图像单元,而更改后的QTKitPlayer无法加载。我只需要更改项目的构建设置。 明智的选择-在升级到具有新OSX和新XCode的新Mac之后,如果遇到暮光区问题,请检查构建设置。     
您确定为自定义过滤器使用正确的名称吗?
(CIFilter *ciFilter = [CIFilter filterWithName:@\"MyDistortionWarp\"];)
这必须是类名(
CIFilterClass
),而不是插件(或图像单元)的名称。     

要回复问题请先登录注册