我创建了一个带有与该项目相关的 swift 包(我们称之为“Foo”)的基本项目。
Foo().text我尝试从from打印“hello world”,AppDelegate
但出现错误:
"Cannot call value of non-function type 'module<Foo>' "
然后我尝试向这个包中添加一个新的结构或类,我得到一个错误:"Cannot find {ObjectName} in scope"
Foo 中的测试全部通过。看起来我错过了一些步骤。
我创建了一个带有与该项目相关的 swift 包(我们称之为“Foo”)的基本项目。
Foo().text我尝试从from打印“hello world”,AppDelegate
但出现错误:
"Cannot call value of non-function type 'module<Foo>' "
然后我尝试向这个包中添加一个新的结构或类,我得到一个错误:"Cannot find {ObjectName} in scope"
Foo 中的测试全部通过。看起来我错过了一些步骤。
您可能忘记将 Swift 包导入AppDelegate. 尝试将您的包裹的等价物放在AppDelegate.
import Foo
根据这个Github Issue,(如果你使用的是 CocoaPods,你没有在你的问题中说明。) 你必须公开你的包中的类/结构。
您可能还必须像这样尝试:
Foo.bar()
Foo是您的包名,并且bar是其中的类或结构。
不要将模块与公共类(或结构)混淆。这就是你在这里所做的事情:
我创建了一个带有与该项目相关的快速包(我们称之为“Foo”)的基本项目,并尝试从
Foo().text
说Foo()意味着有一个名为 Foo 的公共类/结构。在那儿?我不这么认为。你可能有一个名为 Foo 的包,你import. 但这并不意味着 Foo 包有一个名为 Foo的公共类(或结构) 。
例如,你可能会在你的包中看到这个:
struct Foo {
var text = "Hello, World!"
}
但这并不意味着您可以简单地import Foo然后谈论Foo().text,因为这个 Foo 不是公开的。