0

我创建了一个带有与该项目相关的 swift 包(我们称之为“Foo”)的基本项目。

Foo().text我尝试从from打印“hello world”,AppDelegate 但出现错误:

"Cannot call value of non-function type 'module<Foo>' "

然后我尝试向这个包中添加一个新的结构或类,我得到一个错误:"Cannot find {ObjectName} in scope" Foo 中的测试全部通过。看起来我错过了一些步骤。

4

2 回答 2

1

您可能忘记将 Swift 包导入AppDelegate. 尝试将您的包裹的等价物放在AppDelegate.

import Foo

根据这个Github Issue,(如果你使用的是 CocoaPods,你没有在你的问题中说明。) 你必须公开你的包中的类/结构。

您可能还必须像这样尝试:

Foo.bar()

Foo是您的包名,并且bar是其中的类或结构。

于 2020-12-03T22:35:29.343 回答
0

不要将模块与公共类(或结构)混淆。这就是你在这里所做的事情:

我创建了一个带有与该项目相关的快速包(我们称之为“Foo”)的基本项目,并尝试从Foo().text

Foo()意味着有一个名为 Foo 的公共类/结构。在那儿?我不这么认为。你可能有一个名为 Foo 的,你import. 但这并不意味着 Foo 包有一个名为 Foo的公共类(或结构) 。

例如,你可能会在你的包中看到这个:

struct Foo {
    var text = "Hello, World!"
}

但这并不意味着您可以简单地import Foo然后谈论Foo().text,因为这个 Foo 不是公开的。

于 2020-12-03T23:35:23.180 回答