Xamarin 检查本地通知的NSDictionary中是否存在值

Xamarin 检查本地通知的NSDictionary中是否存在值,xamarin,xamarin.forms,xamarin.ios,Xamarin,Xamarin.forms,Xamarin.ios,因此,我使用本地通知向用户发送每日通知,添加通知后,我会在userInfo-NSDictionary中添加一个id。用户可以随时移除药物,这将取消通知,这就是我将id添加到NSDictionary中的原因 var notification = new UILocalNotification(); Random rnd = new Random(); string stringid = rnd.Next(1, 1000000000).ToStrin

因此,我使用本地通知向用户发送每日通知,添加通知后,我会在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语句中读取id。有人能解释为什么我的代码不起作用吗??谢谢你的帮助

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(新的NSString(usermeddosagetimeid))


顺便说一句,自iOS 10以来已被弃用,您可以使用该类来计划本地通知。

如果我理解正确,如果您想取消包含键
usermeddosagetimeid
的通知,If语句应为:

    if (userinfo.ContainsKey(new NSString(usermeddosagetimeid)))
    {

        UIApplication.SharedApplication.CancelLocalNotification(item);

    }
而不是
!userinfo.ContainsKey(新的NSString(usermeddosagetimeid))


顺便说一句,自iOS 10以来已弃用,您可以使用该类来安排本地通知。

谢谢,因此我现在将通知更改为UnUsernotifications as off,是否有方法一次取消所有通知,例如当用户注销时?请尝试解决方案。方法是:谢谢,所以我现在把我的通知改为UnUsernotifications as off,有没有办法一次取消所有的通知,例如当用户要注销时?试试这个解决方案。方法是:和