使用RealmSwift使类符合协议

ecfdbz9o  于 2023-09-30  发布在  Swift
关注(0)|答案(1)|浏览(160)

我定义了一个protocol ExampleProtocol,它的属性exampleArray的类型为[Stuff]。这个协议是在一个框架中定义的,所以我也可以在我的AppClip版本中使用它。
Stuff是另一个协议。
我的方案是

  1. public protocol ExampleProtocol {
  2. var exampleArray: [Stuff] { get set }
  3. }

我使用RealmSwift作为本地存储,并且创建了一个符合ExampleProtocol的类Example。但是,我遇到了一个错误,指出“Type 'Example' does not conform to protocol 'ExampleProtocol'.”如何解决此问题?
类与领域:

  1. class Example: Object, Identifiable, ExampleProtocol {
  2. @Persisted var id = UUID().uuidString
  3. var exampleArray = List<Stuff>()
  4. }

其中AppClip中的类定义不同:

  1. class ExampleAppClip: Identifiable, ExampleProtocol {
  2. var id = UUID().uuidString
  3. var exampleArray = [Stuff]()
  4. }

我很感激任何关于如何修复这个错误并确保我的类正确符合协议的见解或建议。

xqkwcwgp

xqkwcwgp1#

在你的协议中,你定义了简单的数组类型,但是数组和领域列表是两种不同的类型。您需要在协议和应用程序剪辑类中更改它。希望这是有意义的。

  1. public protocol ExampleProtocol {
  2. var exampleArray: List<Stuff> { get set }
  3. }

并使其符合

  1. class ExampleAppClip: Identifiable, ExampleProtocol {
  2. var id = UUID().uuidString
  3. var exampleArray = List<Stuff>()
  4. }

相关问题