[英]Checking if a value exists in a NSDictionary for local notifications
因此,即时消息使用本地通知向用户发送每日通知,一旦添加了通知,便在userInfo-NSDictionary中添加一个ID。 用户可以随时删除药物,这将取消通知,这就是为什么我将ID添加到NSDictionary中的原因。
var notification = new UILocalNotification();
Random rnd = new Random();
string stringid = rnd.Next(1, 1000000000).ToString();
notification.AlertBody = usermedid + "Please take " + dosage + " of " + medname;
stringid = notification.AlertBody;
App.BadgeCount = App.BadgeCount + 1;
notification.ApplicationIconBadgeNumber = App.BadgeCount;
notification.FireDate = NSDate.FromTimeIntervalSinceNow(60);
notification.RepeatInterval = NSCalendarUnit.Minute;
var userInfo = NSDictionary.FromObjectAndKey(new NSString("UsermeddosageID"),new NSString(usermeddosagetimeid));
notification.UserInfo = userInfo;
UIApplication.SharedApplication.ScheduleLocalNotification(notification);
该代码将id插入NSDictionary,但是由于某种原因,它不会在我的IF语句中读取它。 谁能解释我的代码为什么不起作用? 任何帮助表示赞赏。
var array = UIApplication.SharedApplication.ScheduledLocalNotifications;
foreach (var item in array)
{
var userinfo = item.UserInfo;
if (!userinfo.ContainsKey(new NSString(usermeddosagetimeid)))
{
UIApplication.SharedApplication.CancelLocalNotification(item);
}
}
如果我理解正确,如果您想取消包含密钥usermeddosagetimeid
的通知,则if语句应为:
if (userinfo.ContainsKey(new NSString(usermeddosagetimeid)))
{
UIApplication.SharedApplication.CancelLocalNotification(item);
}
代替!userinfo.ContainsKey(new NSString(usermeddosagetimeid))
BTW, scheduledlocalnotifications是因为iOS的10弃用,你可以使用UNUserNotificationCenter类调度本地通知来代替。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.