如果用户喜欢图像swift 2如何获取的逻辑问题

时间:2016-06-29 10:14:35

标签: swift parse-platform swift2

我正在尝试使用Parse.com中的那些表制作一个简单的照片应用程序

表用户

  • ID
  • 名称
  • 电子邮件

表跟随

  • ID
  • 关注者(指向用户的指针)
  • 跟随(指向用户的指针)

表格图片

  • ID
  • 图片(文件)
  • uploader(指向用户的指针)

表喜欢

  • ID
  • likesImage(指向图片的指针)
  • whoLikedIt(指向用户的指针)

所以我有他的逻辑。如果User1喜欢User2的图像,则表格中会插入一行Likes。一切都好到现在。

但是如果User1关闭应用程序并再次打开它,我想在图像单元格中显示一个红色的心(就像在Instagram中一样),如果他喜欢的话。

问题我如果在cellForItemAtIndexPath内进行查询 要查看currentUser和图像的ID是否与表Likes处的某处匹配,它对用户体验不利,因为如果他有100张图像,它最终会变慢。

所以我的问题是,是否有任何聪明的方法来进行查询并立即更改单元格的图像???

我认为当应用程序打开(并且用户已登录)时,我可以在表格中进行常规查询并在列whoLikedIt中搜索currentUser id并创建一个包含所有内容的数组列likedImage中图像的ID。然后在

里面
cellForItemAtIndexPath 

我可以检查图像的id是否在该数组内部,将喜欢的图像更改为红心,否则保持原样。 通过这种方式,我将在我的应用程序中获得更快的速度吗?

或者你可以建议任何其他方式? 非常感谢你的时间。

2 个答案:

答案 0 :(得分:2)

你想要的是向用户展示他喜欢的照片",最好的方法是创建一个与你的用户链接的表,其中包含他喜欢的所有身份证照片。

通过这种方式,您不会对图片对象收取太多费用(如果图片被喜欢1M次),您可以轻松检索并检查每个用户的数据。

答案 1 :(得分:2)

我建议您在登录时下载与用户相关的数据并将其保存在本地。因此,您可以访问它以呈现UI。在这个特定情况下,我会下载他喜欢的图像的ID并将其存储在Set中。现在你可以查看,如果他喜欢cellForItemAtIndexPath

中的1张图片

但请注意,您可能需要在某个时候更新本地数据。在这种情况下,推送通知对您有用