swift4:如何通过通知显示随机单元格的值?

时间:2018-10-14 13:13:26

标签: ios swift

我想根据用户确定的重复周期,通过通知在tableView上随机显示所有单元格的值。 但是,现在相同的值继续出现在我的应用程序上。

也许我发现的原因是,当用户设置重复周期时,“ func sendLocalPush”仅被调用一次。另外,在下面的这种情况下,“ randomItem”是一个全局变量和固定变量。因此,将相同的值连续分配给“ forKey:”并显示。

ListViewController

import UIKit
var list = ["apple", "banana", "lemon"] 
var randomItem = Int(arc4random_uniform(UInt32(list.count)))

LocalPushManagerController

func sendLocalPush(in time: TimeInterval){

    let content = UNMutableNotificationContent()

    content.body = NSString.localizedUserNotificationString(forKey: list[randomItem], arguments: nil)

    let trigger = UNTimeIntervalNotificationTrigger(timeInterval: time, repeats: true)
    let request = UNNotificationRequest(identifier: "Timer", content: content, trigger: trigger)

    center.add(request) { (error) in
        if error == nil{
            print("schedule push succeed")
        }
    }

}

设置vc

@IBAction func setButton(_ sender: Any) {

    guard let text = timeField.text else {return}
    guard let time = TimeInterval(text) else {return}
    LocalPushManager.shared.sendLocalPush(in: time)

    self.dismiss(animated: true, completion: nil)

}

我想到了我复制通知数组的想法,并继续执行以下过程:一旦触发通知并分配了新的随机值,就删除了分配的元素。 但是如上所述,通知请求仅被调用一次,因此我也不知道如何实现该想法。

您有解决此问题的想法吗?任何其他想法都欢迎。

谢谢。

0 个答案:

没有答案