【问题标题】:Swift: Importing Custom Framework - Use of Unresolved IdentifierSwift:导入自定义框架 - 使用未解析的标识符
【发布时间】:2015-07-28 20:59:44
【问题描述】:

将一些代码移入外部框架后,我一直在尝试在我的应用程序中导入和使用该框架。我已将该框架作为依赖项添加到我的应用中。

我的框架叫做 DiceKit。在其中一个类中,为了测试,我在文件顶部添加了import DiceKit。这不会引发任何错误。

当我尝试访问应该在框架中的类时,我收到了 Use of Unresolved Identifier 错误。

import UIKit
import DiceKit

class FirstViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        println (Die(12).roll())   // `Die` doesn't exist at compile time
    }
}

什么可能导致框架中的类无法编译?我已确保所有类和方法都标记为 public,并且我没有更改框架中默认的任何构建设置。

我正在使用 XCode 6.3 Beta

感谢您的帮助!

【问题讨论】:

  • 你的外部框架是Objective-C吗?你做了桥接头吗?
  • 外部框架也是用 Swift 编写的。那里有一个由 XCode 创建的头文件 DiceKit.h。在这种情况下我还需要桥接头吗?
  • 添加 Dice 类的声明。我认为它没有被宣布为公开的。另请注意,使用 swift 代码作为框架仍然存在一些缺点 atm,特别是因为嵌入式 Swift 版本必须相同(在应用程序和框架中)是必不可少的,因此仅包含代码可能更好 atm在你的项目中,而不是只有框架。
  • @MikeLischke,我应该在哪里添加哪个骰子类的声明?框架中的所有类都标记为公共的。有趣的是,需要相同版本号的快速代码。这只是 Swift 似乎没有 100% 准备好使用的另一个原因。
  • 我遇到了这个问题;我通过将我的 .swift 文件添加到构建阶段下的框架的编译源(而不是标题)来解决它。然后 Xcode 识别了它们,我可以正常使用它们。

标签: ios swift xcode6


【解决方案1】:

在您的 DiceKit 自定义框架中

您应该将您的 Die 类声明为 public

public public public 所有的东西!或者至少,其他人需要从框架中使用的东西。

【讨论】:

  • 我投了反对票,因为 OP 已经提到该课程绝对是公开的。照原样,这个答案似乎没有改善
猜你喜欢
  • 2016-04-29
  • 1970-01-01
  • 1970-01-01
  • 2015-05-13
  • 2016-11-28
  • 2015-05-25
  • 2017-01-28
  • 2015-11-27
  • 1970-01-01
相关资源
最近更新 更多