我正在为一个程序编写一些自定义CIFilter。基于CIKernel的kernelsWithString:
将从同一个文件中获取多个内核(以及我现在无法回忆的一些类似线索)的事实,似乎我可以在1个插件中提供它们。我是在咆哮错误的树,还是这样可行?
我做了一个明显有缺陷的尝试,并且2个过滤器做出现了。但是,有一个是有缺陷的,使用[[CIFilter filterWithName:filterName] attributes]
就会为参数列表生成null。
我相信我现在已修复它,但[CIPlugIn loadAllPlugIns]
“加载新添加的图像单元,但不会删除已加载的图像单元(以及它们包含的过滤器)。”我的修复程序被忽略了,或者我实际上没有修复它。除非有人知道卸载过滤器的方法(核心图像编程指南暗示是可能的),否则无法重新启动我无法确定。
答案 0 :(得分:1)
显然我误解了CIPlugin系统是如何工作的:它不是全球性的。也就是说,每个程序加载的插件都独立于其他程序。因此,要更新插件,只需关闭所有正在使用它的程序,然后替换插件。
要回答主要问题,是的,在1个插件中放置多个过滤器相当容易。
XxxPlugInLoader : NSObject <CIPlugInRegistration>
类和Xxx : CIFilter
类。 (过滤器“bundleForClass
似乎都来自同一个捆绑包。”CIFilterClass
条目必须与上面定义的CIFilter类匹配。每个过滤器CIAttributeDescription
条目都是字符串文件的一个键。