2017-08-03 1 views
0

Durch Brennen ein API, erhalte ich eine bestimmte Liste von Titeln suchen, die ich wie so in einer Reihe an Speicherung ..Wie auf einer Suchleiste auf der Basis von Kern-Dateneinheit und Attribut

self.arr1.updateValue(user, forKey: "title") and 
self.sampleArray.append(self.arr1["title"] as! String) 

Jetzt sampleArray hat alle Titel, die ich brauche, und ich muss auf der Grundlage dieser Titel filtern. Mein Coredata-Modell hat eine Entität namens Posts und Attribute content, title.

Auch zur Zeit das ist, wie ich bin Filterung ..

filtered = sampleArray.filter({ (text) -> Bool in 
       let tmp: NSString = text as NSString 
       let range = tmp.range(of: searchText, options: NSString.CompareOptions.caseInsensitive) 
       return range.location != NSNotFound 
      }) 

Hier hat sample nur eine Liste mit Namen und diese Namen sind mit dem Array mit dem Namen ‚gefiltert‘ hinzugefügt. Aber das Problem ist, dass wir beim Klicken auf eine Zeile zu einem Webview gehen, das segue verwendet, und dass Webview einen Inhalt in einem Absatz hat. Wenn Sie auf jede Zeile klicken, wird die Webansicht mit anderen Daten angezeigt. Mit dieser Filterung, die ich oben mache, wenn ich auf die Zeile klicke, die ich nach der Filterung erhalte, sind die angezeigten Webview-Daten falsch. Mit anderen Worten, ich bin nicht in der Lage herauszufinden, wie ich das richtige Array übergeben werde, damit der korrekte Inhalt der Webansicht angezeigt wird.

Meine Entität 'Posts' hat die Attribute 'Titel' und 'Inhalt'. Wenn ich die Posts filtern kann und dann den Titel davon bekomme, dann denke ich, dass ich den Inhalt auch bekommen kann. Aber ich bin nicht in der Lage herauszufinden, wie das gemacht wird.

Antwort

0

Sie suchen nur nach den Attributen, während Sie auf der Basis Ihres verwalteten Objekt-Arrays suchen. Versuchen Sie dieses Format ...

filtered = self.arrayOfYourManagedObjectType.filter { ($0.title?.lowercased().contains(searchText.lowercased()))! } 
0

Was meinst du mit entsprechenden Inhalt nach dem Klicken auf gefiltertes Ergebnis?. In der Regel können Sie die Liste der Werte filtern, indem Sie filteredArrayUsingPredicate oder Filter Methode verwenden.

+0

Hallo..Ich habe meine Frage bearbeitet. Bitte guck dir das an... –

Verwandte Themen