【问题标题】:iOS 9 Realmswift trouble with queryiOS 9 Realmswift 查询问题
【发布时间】:2016-04-14 17:37:27
【问题描述】:

我正在尝试从具有'mytag' 的所有对象的领域中获取新闻对象的Results<News>

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&lt;Tag&gt;。标签有一个布尔值my 来查看它是否属于我的标签。

这样我可以获得个人新闻。

但是,我不明白如何查询。我对 SQL 有一些了解,但我似乎无法使用 containsin 弄清楚它

我尝试了一种解决方法,但似乎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 的列表。我该怎么做?

【问题讨论】:

    标签: swift2 ios9 realm


    【解决方案1】:

    嗯,最后很容易:D

     func retrieveMyNewsSortedByDate() -> Results<News> {
        let myTags = TagDataService().myTagsList()
    
        let items = database().objects(News).filter("ANY tags IN %@", myTags).sorted("date")
        return items
    }
    

    【讨论】:

      猜你喜欢
      • 2016-04-02
      • 2015-12-19
      • 2015-12-12
      • 1970-01-01
      • 2016-04-11
      • 2015-12-14
      • 2015-12-28
      • 2015-12-16
      • 1970-01-01
      相关资源
      最近更新 更多