【问题标题】:Custom iOS dynamic framework: Swift class is imported but can't be initialized自定义iOS动态框架:导入Swift类但无法初始化
【发布时间】:2017-01-19 18:50:50
【问题描述】:
  1. 我创建了一个 Cocoa 触控框架
  2. 我在该框架中创建了一个公共TestSDK swift 类,它有public func makeSomething()
  3. 我创建了一个 iOS 应用程序
  4. 我构建了框架
  5. 我将TestSDK复制到应用并链接TestSDK.framework
  6. 我添加了import TestSDK - 没有错误
  7. 我添加了let sdk = TestSDK() 并得到错误:

无效使用'()'调用非函数类型的值 '模块'

【问题讨论】:

  • 可能听起来很愚蠢,但您尝试过重命名课程吗?例如,它可能会发现一些潜在的类可见性错误。
  • 试过 - 同样的问题
  • 这个错误有什么不同吗?

标签: ios iphone swift cocoa-touch frameworks


【解决方案1】:

解决了。

框架构建目标设备不应是“通用 iOS 设备”,而是模拟器或真实设备

【讨论】:

  • 运行应用程序时,您没有选择此应用程序正在使用的框架的构建目标,所以我认为必须是其他东西。
  • 第一步是构建框架。第二 - 将 TestSDK 复制到应用程序。第三是构建应用程序。在回答中,我的意思是第 1 步。
  • 抱歉,出于某种原因,我认为应用程序和框架位于同一个工作区中。我没有意识到您导出并手动链接它 - 在这种情况下,您需要注意您正在构建的架构。
  • 感谢它的工作!你知道它是什么原因吗?我的意思是如果我需要同时运行模拟器+设备怎么办?
【解决方案2】:

我尝试做同样的事情并且效果很好。只需确保将类显式标记为 public — 在 Swift 中默认访问控制级别为 internal,例如仅在模块内部可用。

【讨论】:

  • 类和函数是公开的
猜你喜欢
  • 2014-11-07
  • 1970-01-01
  • 1970-01-01
  • 2014-11-10
  • 2012-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多