我一直在尝试解决this问题。所以我想在swift 4.1上创建一个新的简单新框架。
我的代码是:
public class TestStupidity: NSObject {
public static var shared = TestStupidity()
public func hello() {
print("hello")
}
}
然而,即使这一小段代码也不适合我。公共类及其变量不会显示在头文件中。
我已在link上的GitHub上传了这个项目。
任何人都可以帮我弄清楚我在这里做错了什么吗?
答案 0 :(得分:0)
使用open
关键字:可以访问open
类
在定义模块之外的 subclassable 。开放类成员可在定义模块外部访问和覆盖。还要添加@objcMembers
@objcMembers open class ARCompactDeviceInfo:NSObject {}
转到目标 - >构建阶段 - >标题在公开中添加Umbrella Header文件(具有相同项目名称的文件)文件 如图所示。就像在我的项目中我一样,CryptoAPI.h和其他隐藏的文件 Example of Swift 4 Framework。
<强>编辑:强> @Amogh Shettigar:在添加了上述详细信息后,我已经下载了您的项目并集成了Sample App。 框架和集成应用程序Here is URL
答案 1 :(得分:0)
按照以下步骤操作,看看它的工作正常:
创建Cocoa Touch Framework类型的新项目,将其命名为Tester
添加名为TestStupidity.swift的新Swift文件
将问题中的代码添加到文件中:
public class TestStupidity: NSObject {
public static var shared = TestStupidity()
public func hello() {
print("hello")
}
}
将新目标添加到Single View App类型的项目中,并将其命名为TesterApp
选择TestApp目标,然后在“常规”选项卡中,单击“嵌入式二进制文件的+号”。选择Tester框架
在ViewController.swift文件中,将代码设置为:
import UIKit
import Tester
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let testClass = TestStupidity()
testClass.hello()
}
}
运行TestApp并查看&#34; hello&#34;在输出中。