我正在为我的 iOS 应用程序创建共享扩展。我将创建一个嵌入式框架来在我的应用程序和扩展程序之间共享我的代码。
但我想让扩展只知道它需要的代码。问题是我已经有很多字段的类(其中许多不是扩展所必需的)。
这是一个例子。我有一个用户类:
class User {
var name: String
var badge: UserBadge?
}
在上面的示例中:我只需要扩展名中的“name”属性,并且我不需要 userBadge 属性。
我可以将“UserBadge”类包含到框架中,但这不是一个好的解决方案,因为结果我将在框架中有很多不必要的类。
可能的解决方案:
首先,我尝试使用 Swift 扩展。但他们不允许拥有存储属性。所以这没有帮助。
第二种可能的解决方案是创建一个仅具有“名称”属性的基本“用户”类。并且还创建了一个具有“userBadge”字段的继承类“AppUser”。因此我们可以在应用程序中使用“AppUser”类并在框架中使用“User”类。该解决方案将使我重写所有课程。
这个问题有更好的解决方案吗?