как ограничить нажатие кнопки по прошествии времени - PullRequest
1 голос
/ 11 июля 2019

Мне нужна кнопка, на которой пользователь нажимает, чтобы сообщить всем, что он посещает какое-то место, но я только хочу, чтобы его можно было нажимать до 3 раз в сутки в зависимости от содержимого кнопки, поскольку естьtableView с одной кнопкой на ячейку

Я ничего не пробовал, так как никогда не использовал время в swift, все еще новое для него

@IBAction func myButtonClicked(_ sender: Any) {
    DataService.ds.REF_BARS.child(imageTitleLabel.text!).child("GoingCount").observeSingleEvent(of: .value, with: { (snapshot) in
        print(snapshot.value as! String)
        self.countString = snapshot.value as! String
        self.countInt = Int(self.countString)! + 1
        DataService.ds.REF_BARS.child(self.imageTitleLabel.text!).updateChildValues(["GoingCount": String(self.countInt)])
    })
}

, если вы можете добавить предварительное или последующее условие пользователянажимает на или вокруг этой кнопки

1 Ответ

3 голосов
/ 11 июля 2019

Вы можете сделать это для 1 кнопки

if let storedDate = UserDefaults.standard.object(forKey:"StoredDate") as? Date {

      let toDate = Calendar.current.date(byAdding: .day, value:1, to:storedDate)
      let cliks = UserDefaults.standard.integer(forKey:"NumOfClicks")

      if Date() <= toDate { 
          if cliks < 3 {
                // do what you need and increase NumOfClicks by 1
          }
          else {
             // no more clicks this day
          }
      }
      else { 
         // date exceed may be reset the date and cliks to 1
      }
}
else {
     // first attempt 
     UserDefaults.standard.set(Date(),forKey:"StoredDate")
     UserDefaults.standard.set(1,forKey:"NumOfClicks")
     // do what you need once from here 
}

Для обработки массива вы можете думать о каждом ключе выше как о массиве вместо этого при хранении / извлечении, как [Date] / [Int]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...