在 obj C 项目上调用的 iOS Swift 方法
Posted
技术标签:
【中文标题】在 obj C 项目上调用的 iOS Swift 方法【英文标题】:iOS Swift method called on obj C project 【发布时间】:2017-01-16 04:51:33 【问题描述】:我正在与imglyKit swift 3 library合作
使用 swift 示例,我可以使用 [从任何地方调用,共享实例?] 设置自定义过滤器:
PhotoEffect.allEffects = effects
and effects 是一个数组,
private let effects: [PhotoEffect] = [
PhotoEffect(identifier: "None", ciFilterName: nil, lutURL: nil, displayName: "None", options: nil),
PhotoEffect(identifier: "K1", lutURL: Bundle(for: PhotoEffect.self).url(forResource: "K1", withExtension: "png"), displayName: "K1"),
PhotoEffect(identifier: "K2", lutURL: Bundle(for: PhotoEffect.self).url(forResource: "K2", withExtension: "png"), displayName: "K2"),
PhotoEffect(identifier: "K6", lutURL: Bundle(for: PhotoEffect.self).url(forResource: "K6", withExtension: "png"), displayName: "K6"),
PhotoEffect(identifier: "Dynamic", lutURL: Bundle(for: PhotoEffect.self).url(forResource: "Dynamic", withExtension: "png"), displayName: "Dynamic"),
PhotoEffect(identifier: "Fridge", lutURL: Bundle(for: PhotoEffect.self).url(forResource: "Fridge", withExtension: "png"), displayName: "Fridge")
]
所以这个带有“共享实例”的配置可以在代码中的任何地方工作。
现在的问题是,如何访问 pod “imglykit” 的共享实例以设置此属性?
这里是对objective C的测试,但只是一个实例,如何与已经创建的对象链接?
IMGLYPhotoEffect *photoEffect = [[IMGLYPhotoEffect alloc]initWithIdentifier:@"None" ciFilterName:nil lutURL:nil displayName:@"None" options:nil];
【问题讨论】:
【参考方案1】:allEffects
是 IMGLYPhotoEffect
类(在 Swift 中称为 PhotoEffect
类)的类方法。
试试这个:
IMGLYPhotoEffect.allEffects = effects;
以下是在 Objective-C 中找出调用 swift API 的正确方法的提示:如果您在 Objective-C 项目中 Cmd-单击符号 IMGLYPhotoEffect
,它将带您到生成的标题Objective-C 中的类。
【讨论】:
以上是关于在 obj C 项目上调用的 iOS Swift 方法的主要内容,如果未能解决你的问题,请参考以下文章