2016-04-14 11 views
0

Ich versuche, eine Results<News> von Nachrichten Objekte aus Reich aller Objekte zu erhalten, die 'mytag'iOS 9 Realmswift Probleme mit Abfrage

Die News bezwecken sieht so etwas wie

dynamic var id = 0 
dynamic var title = "" 
dynamic var date = NSDate() 
dynamic var modified = NSDate() 
dynamic var protected = true 
dynamic var category : Category? 
dynamic var image : Image? 
let content = List<Content>() 
let tags = List<Tag>() 

habe ich eine Results<Tag> mit allen meine Tags. Tag hat einen booleschen my, um zu sehen, ob es zu meinen Tags gehört.

So konnte ich persönliche Nachrichten bekommen.

Allerdings verstehe ich nicht, wie Sie dies abfragen. Ich habe einige Kenntnisse von SQL, aber ich kann es nicht scheinen, um herauszufinden, mit contains oder in

ich eine Abhilfe versucht, aber es scheint Results keine append Funktion hat.

Hier ist meine aktuelle Problemumgehung:

func retrieveMyNewsSortedByDate() -> Results<News> { 
    let myTags = TagDataService().myTagsList() // retunrs a List<Tag> 

    print("My news items"); 
    let items = database().objects(News).filter("tags IN %@", myTags).sorted("date") // how to query or query with news and tag table 
    let myTagItems = List<News>() 
    for tag in myTags { 
     for news in items{ 
      for newsTag in news.tags { 
       if newsTag == tag { 
        myTagItems.append(news) // Results does not have .append or .addobject 
       } 
      } 
     } 
    } 
    mytagItems = Results(myTagItems) 
    return myTagItems 
} 

Aber jetzt würde ich ein sehr ineffizienter Weg, die auch Liste gibt, die ich nicht auf Results zu werfen scheinen. Wie mache ich das?

Antwort

0

gut, war es ganz einfach am Ende: D

func retrieveMyNewsSortedByDate() -> Results<News> { 
    let myTags = TagDataService().myTagsList() 

    let items = database().objects(News).filter("ANY tags IN %@", myTags).sorted("date") 
    return items 
}