无法访问 Objective-C 中的 Swift 框架
Cannot access Swift Framework in Objective-C
创建 Swift 框架,
Geolens.swift
当我尝试访问 Objective-C 项目时,无法调用 2 个方法
createuser
& startSessionForUser
出现这样的错误
Method cannot be marked @objc because the type of the parameter cannot be represented in Objective-C
添加@objc
:
@objc public func createUser(...) { ... }
@objc public func startSessionForUser(...) { ... }
如果您还希望在 Obj-C 中访问这些方法,请确保在所有方法的定义中添加 @objc public
。就像您在 class.
中的 didRegister...
和 didFailedToRegisrer...
方法中所做的一样
快乐编码...
您的问题在 UserCompletionBlock
中的 errorCode: Int?
中。
Int
是value type
,而Objective C
不能表示value type
的Optional
,只能表示reference types
如class
会.
所以你必须:
- 去掉可选性
- 使用引用类型,例如
NSNumber
或您自己的包装器
- 完全放弃这个参数
创建 Swift 框架,
Geolens.swift
当我尝试访问 Objective-C 项目时,无法调用 2 个方法
createuser
& startSessionForUser
出现这样的错误
Method cannot be marked @objc because the type of the parameter cannot be represented in Objective-C
添加@objc
:
@objc public func createUser(...) { ... }
@objc public func startSessionForUser(...) { ... }
如果您还希望在 Obj-C 中访问这些方法,请确保在所有方法的定义中添加 @objc public
。就像您在 class.
didRegister...
和 didFailedToRegisrer...
方法中所做的一样
快乐编码...
您的问题在 UserCompletionBlock
中的 errorCode: Int?
中。
Int
是value type
,而Objective C
不能表示value type
的Optional
,只能表示reference types
如class
会.
所以你必须:
- 去掉可选性
- 使用引用类型,例如
NSNumber
或您自己的包装器 - 完全放弃这个参数