我创建了一个类似于ios警报应用程序的警报应用程序,并且单元格和tableview也类似于它。单元格具有2种标签和开关按钮,因此当我打开按钮时,警报会在单元格的标签时间被激活。
有一个triggerAlarm()
函数,它跟踪时间并循环通过items
类型的[Item]()
数组(Item
是类型{{1 }}保存数据,它有2个属性NSManagedObject
和time: String
)。
问题是isOn: Bool
中的Timer
方法未在viewDidLoad()
函数中通过该循环运行,但显示了triggerAlarm()
。该循环应该将realTime
与items数组进行比较,并在realTime
属性为true但却没有发生的情况下调用notificationTrigger()
函数。
Xcode也没有显示任何错误。
这是代码:
isOn
答案 0 :(得分:0)
@objc func triggerAlarm() {
realTime = DateFormatter.localizedString(from: Date(), dateStyle: .none, timeStyle: .short)
print(realTime)
for i in 0..<items.count {
if (items[i].time!) == realTime && items[i].isOn == true{
print(time)
self.notificationTrigger()
}else {
return
}
}
}
这里您在其他地方使用return。 因此,它不是从当前iterartion的循环中断开(我想您要实现此目标),而是从整个方法调用中返回。而是使用:-
继续
或者最好省略else部分
@objc func triggerAlarm() {
realTime = DateFormatter.localizedString(from: Date(), dateStyle: .none, timeStyle: .short)
print(realTime)
for i in 0..<items.count {
if (items[i].time!) == realTime && items[i].isOn == true{
print(time)
self.notificationTrigger()
}
}
}