Ich versuche, ein Prädikat basierend auf einem Segment-Controller-Schalter zu definieren.Wenn else Anweisung ein NSPredikat zu definieren
if self.streamtype == "case1" {
let predicatearray = defaults.object(forKey: "case1") as! [String]
let predicate = NSPredicate(format: "UserID IN %@" , predicatearray)
} else if self.streamtype == "case2" {
let predicate = NSPredicate(format: "TRUEPREDICATE", argumentArray: nil)
} else {
let predicatearray = defaults.object(forKey: "case3") as! [String]
let predicate = NSPredicate(format: "UserID IN %@", predicatearray)
}
let publicData = CKContainer.default().publicCloudDatabase
let query = CKQuery(recordType: "Post", predicate: predicate)
Ich erhalte eine Fehlermeldung, dass:
„: eine konkrete Instanz erstellen kann nicht auf ein abstraktes Objekt der Klasse NSPredicate geschickt werden!“
Außerdem sagt es mir, dass die Initialisierung der Prädikatvariablen nie verwendet wurde. Ich habe versucht, die Funktion ein paar verschiedene Möglichkeiten zu schreiben, aber das machte für mich am meisten Sinn, da ich das Prädikat nur aktualisieren muss, wenn ich neue Informationen lade, also füge ich einfach beide Funktionen zusammen.