使用 RealmSwift 使类符合协议

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

我定义了一个

protocol ExampleProtocol
,其属性
exampleArray
类型为
[Stuff]
。该协议是在框架内定义的,因此我也可以在我的 AppClip 版本中使用它。

Stuff
是另一个协议。

这是我的协议:

public protocol ExampleProtocol {  
    var exampleArray: [Stuff] { get set }
}

我使用

RealmSwift
进行本地存储,并且我创建了一个符合
Example
的类
ExampleProtocol
。但是,我遇到一条错误,指出“类型‘Example’不符合协议‘ExampleProtocol’。”我该如何解决这个问题?

与 Realm 的课程:

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

AppClip 中的类定义不同:

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

如果您能提供有关如何修复此错误并确保我的课程正确符合协议的任何见解或建议,我将不胜感激。

swift realm
1个回答
0
投票

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

public protocol ExampleProtocol {  
    var exampleArray: List<Stuff> { get set }
}

并遵守它就像

class ExampleAppClip: Identifiable, ExampleProtocol {
    var id = UUID().uuidString
    var exampleArray = List<Stuff>()
}
© www.soinside.com 2019 - 2024. All rights reserved.