相关疑难解决方法(0)

SwiftUI View和@FetchRequest谓词具有可以更改的变量

我有一个视图,显示团队中使用@Fetchrequest和固定谓词“开发人员”过滤的消息。

struct ChatView: View {

@FetchRequest(
    sortDescriptors: [NSSortDescriptor(keyPath: \Message.createdAt, ascending: true)],
    predicate: NSPredicate(format: "team.name == %@", "Developers"),
    animation: .default) var messages: FetchedResults<Message>

@Environment(\.managedObjectContext)
var viewContext

var body: some View {
    VStack {
        List {
            ForEach(messages, id: \.self) { message in
                VStack(alignment: .leading, spacing: 0) {
                    Text(message.text ?? "Message text Error")
                    Text("Team \(message.team?.name ?? "Team Name Error")").font(.footnote)
                }
            }...
Run Code Online (Sandbox Code Playgroud)

我想使该谓词动态化,以便在用户切换团队时显示该团队的消息。下面的代码给我以下错误

无法在属性初始化程序中使用实例成员'teamName';属性初始化程序在“自我”可用之前运行

struct ChatView: View {

@Binding var teamName: String

@FetchRequest(
    sortDescriptors: [NSSortDescriptor(keyPath: \Message.createdAt, ascending: true)],
    predicate: NSPredicate(format: "team.name == %@", teamName), …
Run Code Online (Sandbox Code Playgroud)

core-data nspredicate nsfetchrequest swift swiftui

8
推荐指数
6
解决办法
816
查看次数

标签 统计

core-data ×1

nsfetchrequest ×1

nspredicate ×1

swift ×1

swiftui ×1