我正试图从Results<News>
'mytag'
个新闻对象
News
对象看起来像
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>()
我的所有代码都有Results<Tag>
。标签有一个布尔my
,看它是否属于我的标签。
这样我就可以得到个人新闻。
但是,我不明白如何查询。我对SQL有一些了解,但我似乎无法使用contains
或in
我尝试了一种解决方法,但似乎Results
没有append
功能。
这是我目前的解决方法:
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
}
但是,现在我的效率非常低,也输出了我似乎无法转换为Results
的列表。我该怎么做?
答案 0 :(得分:0)
func retrieveMyNewsSortedByDate() -> Results<News> {
let myTags = TagDataService().myTagsList()
let items = database().objects(News).filter("ANY tags IN %@", myTags).sorted("date")
return items
}