在iOS中,可以使用Objective-C检查可用的过滤器,显然是这样的:
NSArray *Filters = [CIFilter filterNamesInCategory:kCICategoryBuiltIn]
如何使用Swift完成此检查?
对于那些投票并要求关闭这个问题的人来说,这可能会让人感到困惑。
让我用另一种方式说出来。
我想要一个iOS上所有可用过滤器的列表,我想用Swift发现该列表。
这个应该足够简单的东西,我已经想过了。但是有两件事。
问题,最简单的形式:
如何使用Swift获取iOS使用Core Image的可用过滤器列表?
答案 0 :(得分:2)
由于the documentation answers your question directly:
,您正在被投票声明
class func filterNames(inCategories categories: [String]?) -> [String]
参数
categories
过滤器类别键中定义的一个或多个过滤器类别键。通过
nil
获取所有类别的所有过滤器。
你说'不确定放置" nil" (正如Matt所建议的那样)意味着所有过滤器类别',但它 是确定的,因为文档告诉你它。你没有仔细阅读文档,并且堆栈溢出的居民往往对此持敌视态度。
换句话说,如果您想要所有类别中的所有过滤器:
let allFilterNamesRegardlessOfCategory = CIFilter.filterNames(inCategories: nil)
请注意,有一天,这可能会在iOS上返回与CIFilter.filterNames(inCategories: kCICategoryBuiltIn)
不同的结果,但今天却不能,因为今天only macOS supports plugin filters。
最后一段不准确。从iOS 8开始,应用程序就能够创建和使用自己的CIFilter
子类。除了macOS之外,仍然不支持将自定义CIFilter
直接提供给其他应用。