在iOS Parse App中节省流量的最佳方法

时间:2015-06-14 19:31:26

标签: ios arrays swift parse-platform traffic

我的应用程序使用Parse存在逻辑问题,关于选择保存在流量中的路径,如果某人已经遇到类似的问题,我将非常感谢您的帮助。此外,您最终可以帮助其他面临同样问题的开发人员

我有一个社交应用,其中有一个包含对象的Feed,用户可以为这些对象添加书签(“收藏”)

我研究了Parse文档并得出结论,在指针,关系和数组中,存储收藏夹的最佳方式是存储在用户类中的objectId数组。每次用户为对象添加书签时,此对象的ObjectID都存储在属于该用户的objectID数组中。选择的原因是:

  1. 很容易创建书签的视图并将其显示给用户,因为我只需要搜索用户的ObjectID数组并找到对象类中存在的数组

  2. 只保存objectID而不是整个对象,我会保存流量并保持应用和流量清洁

  3. 但我的逻辑问题如下。如果user1创建了一个对象,user2为它添加了书签,然后user1决定删除该对象,我将不得不在每个用户的每个喜欢的数组中搜索这个被删除对象的objectID!

    所以我的问题是,我的应用程序的流量会更便宜吗?当用户为其添加书签时存储整个对象,当用户删除对象时自动删除?或者只是存储ObjectID,并在删除此对象时为每个用户执行搜索?

1 个答案:

答案 0 :(得分:2)

您可以为Feed对象创建Parse类。之后,创建一个数组列来存储将您的Feed项添加到favit的用户的objectIds。当你想要找到特定用户书签的所有对象时,请执行类似

的操作
PFQuery *query = [PFQuery queryWithClassName:@"feedObjects"];
[query whereKey:@"favoritesArray" equalTo:@"YOUR USER OBJECT ID"];
[query findObjectsInBackground];

要删除对象,只需执行

PFObject *feedItem = [PFQuery getObjectOfClass:@"feedObjects" objectId:@"ITEM TO REMOVE OBJECTID"];
[feedItem deleteInBackground];

希望有所帮助:)