我如何利用Parse限制用户行为?

时间:2015-07-30 21:27:50

标签: swift parse-platform

这完全是出于教育目的,帮助我更好地理解Parse和Swift如何运作。

我想这样做,以便用户只能喜欢一次项目(不能多次按下按钮),因为目前,我正在使用一个带有Parse的匿名系统。

我基本上会在likeButton方法中使用带有PFUser.CurrentUser()的if方法来阻止用户再次点击或者我会使用NSUserDefaults吗?

我目前无法发布代码,因为我不在我的笔记本电脑附近,但是如果有帮助的话,我以后可以。如果我能在那之前获得一些信息仍然很好奇。

我在上一个问题中找到的示例代码,基本上实现了相同的想法。

@IBAction func likeButton(sender: AnyObject) {
    let hitPoint = sender.convertPoint(CGPointZero, toView: self.tableView)
    let hitIndex = self.tableView.indexPathForRowAtPoint(hitPoint)
    let object = objectAtIndexPath(hitIndex)
    object.incrementKey("count")
    object.saveInBackground()
    self.tableView.reloadData()   
}

我是否会打电话给NSUsersDefaults以阻止用户多次点击它?

1 个答案:

答案 0 :(得分:0)

您最好调用方法saveInBackgroundWithBlock:,而不是调用savingInBackground。所以策略非常简单:

首先,为对象定义一个'busy'标志(例如:Bool)并将其存储在任何你喜欢的地方(如果你显示1个项目,那么只需声明一个Dictionary属性/如果要显示Item列表,则声明true格式为[“objectID / Index”:Bool])。对于正在后台保存的项目,此标志应设置为savingInBackground

每当使用点击按钮时

  1. 如果当前项目的true标记为savingInBackground,则不执行任何操作
  2. 否则:
    1. 将项目的true设置为saveInBackgroundWithBlock:
    2. 增加计数并致电saveInBackgroundWithBlock:
    3. savingInBackground的完成区中,将false设置回class App extends React.Component { render() { return <p>Hello World</p> } };
  3. 我现在在火车上,所以我不能编写示例代码,但我希望它足以帮助您实现您想要的目标。