我试图找到UNNotificationRequest对象的预定开火日期。
我正在提取这样的待处理通知请求:
let date = trigger.value(forKey: "date") as! Date
然后我尝试访问每个UNNotificationRequest对象的开火日期。
我可以按如下方式访问UNNotificationTrigger,但无法找到访问通知的计划开火日期的方法。
DECLARE @sc_trln AS TABLE (doc_ref VARCHAR(50),doc_type VARCHAR(50),item VARCHAR(50),qty DECIMAL(15,4),unit VARCHAR(50)
,factor DECIMAL(15,4),unit_cost DECIMAL(15,4),cost_per_unit DECIMAL(15,4),item_tot DECIMAL(15,4),item_name VARCHAR(100))
insert into @sc_trln(doc_ref,doc_type,item,qty,unit,factor,unit_cost,cost_per_unit,item_tot,item_name)
select'SA/000091','SA','006824','-2.000','PCS ','1.000','0.6446','0.6446','-1.2892','ALALAI ORANGE JAMS 465GM'
SELECT *
FROM
@sc_trln
我已经能够访问某些通知的日期,如下所示:
function forEachIn(obj, fn) {
var index = 0;
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
fn(obj[key], key, index++);
}
}
}
function extend() {
var result = {};
for (var i = 0; i < arguments.length; i++) {
forEachIn(arguments[i],
function(obj, key) {
result[key] = obj;
});
}
return result;
}
这适用于使用UNUserNotificationCenter安排的通知,但在尝试访问iOS 10之前安排的通知日期时出现以下错误。
由于未捕获的异常终止应用&#39; NSUnknownKeyException&#39;,原因:&#39; [valueForUndefinedKey:]:此类不是关键日期的键值编码兼容。&#39;
是否有一种方法可以同时支持新旧通知。
谢谢。
答案 0 :(得分:8)
无法找到访问通知的预定开火日期的方法。
您已经表明了解如何获取UNNotificationTrigger。好吧,UNNotificationTrigger是一个抽象的超类。你需要找出真正所属的类,并将其转发给该类。然后你可以探索它的属性。
例如:
如果是UNCalendarNotificationTrigger,则将其强制转换为UNCalendarNotificationTrigger。现在它有一个nextTriggerDate
。
如果是UNTimeIntervalNotificationTrigger,则将其强制转换为UNTimeIntervalNotificationTrigger。现在它有nextTriggerDate
。