关系数据库 - iOS - Parse - 交叉引用收藏帖子与所有帖子

时间:2015-04-16 03:06:42

标签: ios swift parse-platform relational-database

我有一个数据库,其中包含一个列表(例如房地产)和一个用户表。用户可以收藏列表。我必须在页面上显示所有列表,并在列表中显示它们是否被当前用户收藏。一般来说,最好的方法是什么。

我意识到这是一个普遍的问题。这适用于iOS开发。我现在正在提取所有列表,我只是添加了收藏列表的功能。在iOS端,我正在创建一个本地Listing对象的数组,并在tableView中显示它们。现在我希望能够标记这些列表是否被收藏,具体取决于它们是否被标记为通过用户的关系。

任何人都有一个简单的基本解释,说明如何做这样的事情?

现在,我已经有了我正在展示的一系列商品。 现在我在想,在我已经查询列表的地方,我还应该查询关系并获得一些用户喜欢的帖子。

现在,当我调用cellForRowAtIndexPath时(对于每个单元格),我可以遍历受欢迎的列表数组,并查看该帖子是否在那里(产生N ^ 2算法)。

任何人都有更好的方法来处理这样的事情?

1 个答案:

答案 0 :(得分:0)

您可以使用您喜欢的列表数组并从中制作字典。检查列表是否被喜欢将是O(1)。

var likedListings = [PFObject]()
var hash = [String: Bool]()

for listing in likedListings {
    hash[listing.objectId!] = true
}

var aListing = PFObject() // say that it is the listing in cellForRowAtIndexPath
if let val = hash[aListing.objectId!] {
    if val == true {
        // aListing is liked
    }
}

您可以在Parse的示例应用Anypic中看到类似功能的一个很好的示例。他们使用NSCache为每张照片保留一些属性(像,评论者,likesByCurrentUser等)。这个想法和上面一样。