特定数据上的SwiftUI和@FetchRequest sortDescriptors(在这种情况下为团队)

时间:2019-09-04 08:49:30

标签: ios swift core-data swiftui nsfetchrequest

我有一个MessagesView,可以在其中创建和删除消息。 作为指导和示例,我使用启用了CoreData en Cloud-kit的Xcode Master-Detail App模板和WWDS视频Using Core Data With CloudKit

struct TeamsManagerView : View {
@FetchRequest(
    sortDescriptors: [NSSortDescriptor(keyPath: \Message.team, ascending: true)],
    animation: .default)
var messages: FetchedResults<Message>

@Environment(\.managedObjectContext)
var viewContext

var body: some View {
    VStack {
        List {
            ForEach(messages, id: \.self) { message in
                Text(message.text)
            }
            .onDelete(perform: delete)
        }
    }
…

一切正常,我可以添加和删除邮件。 我如何获得特定团队的信息? “ Message.team” sortDescriptor向我显示了所有团队的所有消息

顺便说一下,这是我的核心数据模型 enter image description here

1 个答案:

答案 0 :(得分:0)

您必须在您的@FetchRequest中插入一个谓词以分隔您的特殊团队的结果。 NSPredicate(format:“ name ==%@”,“ TeamName”)在您的情况下,您可以展开@FetchResult以查看团队的消息:

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