swift - 从 Objective-C 访问 Swift Package 项目的正确方法是什么?
问题描述
场景:
我已经构建了一个 Swift <-- package simple App,它正在工作。
现在我正在尝试将其转换为 Objective-C <--- 包应用程序。
问题#1:我如何正式导入包?
我读过使用“@import”与旧的“#import”。
现在我得到“'init'不可用”。
这是包(“RicPackage.swift”):
import Foundation
public struct RicStruct {
public private(set) var text = "Hello, World!"
public init() {
}
public func sayHello() -> String {
"Hello Ric!"
}
}
public class RicClass: NSObject {
@objc public var msg = "Mother has a feeling, I might be too appealing."
@objc public let text = "Hello Everybody!"
public init(msg: String) {
if msg.isEmpty {
self.msg = "Hello Ric!"
}
}
public func sayHello() {
print(text)
}
public func doSomething() {
print("Inside doSomething()")
}
}
我至少想做一些简单的事情,比如:
RicClass *ricClass = [[RicClass alloc] init];
[ricClass sayHello];
解决方案
如果您尝试[[RicClass alloc] init]
在 swift 类中调用 add init,我在您的 Swift 类中看不到 init() :
public override init() {
}
您现在只能initWithMsg
使用当前的 swift 类调用:
[[RicClass alloc] initWithMsg:@""]
推荐阅读
- sql - 从 SQL Server 2012 中的 XML 列中提取属性
- javascript - 将列表数据从 html 传递到 python (flask)
- react-native - React Native flatlist 条件渲染
- r - R - CSV 到 ts 用于每日数据
- python - 查找最短路径中osm节点列表的方式ID
- node.js - node.js数据访问acl权限
- sql - 如何从 oracle 中的转储文件中检查表大小?
- java - 使用 MessageFormat 转义双引号
- amazon-web-services - 如何将 Glue/Athena/Quicksight 与 CloudFormation 结合使用
- python - 为什么我在 Python 中收到 BadRequestKeyError?