【问题标题】:Cannot access Swift Framework in Objective-C无法在 Objective-C 中访问 Swift 框架
【发布时间】:2018-06-07 17:14:15
【问题描述】:

创建 Swift 框架,

Geolens.swift

当我尝试在 Objective-C 项目中访问时,无法调用 2 个方法

createuser & startSessionForUser

出现这样的错误

无法将方法标记为@objc,因为在Objective-C中无法表示参数的类型

【问题讨论】:

  • 不要在屏幕截图中包含代码。将代码粘贴为文本。

标签: swift objective-c-blocks swift-framework


【解决方案1】:

你的问题在errorCode: Int?UserCompletionBlock

Intvalue type,而Objective C不能代表value typeOptional,只有reference typesclass会。

所以你必须:

  1. 摆脱可选性
  2. 使用引用类型,例如NSNumber 或您自己的包装器
  3. 完全删除此参数

【讨论】:

    【解决方案2】:

    添加@objc:

    @objc public func createUser(...) { ... }
    @objc public func startSessionForUser(...) { ... }
    

    【讨论】:

      【解决方案3】:

      如果您希望这些方法可以在 Obj-C 中访问,请确保在所有方法的定义中添加 @objc public。就像你在课堂上的 didRegister...didFailedToRegisrer... 方法中所做的那样。

      快乐编码...?

      【讨论】:

        猜你喜欢
        • 2020-01-19
        • 2019-12-27
        • 2017-01-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-19
        • 1970-01-01
        • 2015-12-18
        相关资源
        最近更新 更多