Swift 包访问修饰符

问题描述 投票:0回答:2

我创建了一个简单的

Swift Package
,其中有一个
UI class

我成功上传到存储库并在项目中使用它。

当我第一次尝试导入它并在主项目中使用它时,访问修饰符出现了问题,因为我的

package
not public
但定义为
class MainView: UIView {}

在我将我的套餐更改为

public class MainView: UIView {}
后,效果很好。

我的问题:

这个包和我的其他项目类不一样吗?为什么要与

public
一起使用?

有没有办法在没有

public access modifier
的情况下使用我的包类?

swift access-modifiers swift-package-manager swift-package
2个回答
3
投票

默认的访问修饰符是“internal”,这表明它位于项目本身内。 Swift 包(框架)是您在项目中嵌套实现的第 3 方“项目”。这意味着您正在尝试访问另一个项目的代码。

TL;DR,不,如果您想实现该功能,则不能跳过使用公共访问修饰符


0
投票

从 Swift 5.9 开始,添加了

package
访问修饰符

© www.soinside.com 2019 - 2024. All rights reserved.