System.MemberAccessException:无法创建UserNotifications.UNNotificationTrigger的实例,因为它是一个抽象类

时间:2018-10-08 22:12:17

标签: ios xamarin xamarin.ios

我正在使用最新的通知框架UNUserNotificationCenter安排本地通知。

我正在共享一些代码片段,其中提到了触发器/访问触发器。 请勿顺序阅读。只是我阅读或修改触发器的代码段

var trigger = UNCalendarNotificationTrigger.CreateTrigger(notification.ScheduledTime.DateTimeToNSDateComponents(),false);

trigger.DateComponents.Hour = trigger.DateComponents.Hour + 7;

var trigger =(UNCalendarNotificationTrigger)(notification.Trigger);

这有效,没有任何编译错误,并且通知也有效。过去几个月以来,我们在应用商店中都有此代码。迟到了,我们看到下面的消息崩溃了。我没有在代码中引用UNNotificationTrigger。顺便说一句,这是xamarin IOS应用程序。

System.MemberAccessException:无法创建UserNotifications.UNNotificationTrigger的实例,因为它是抽象类

1 个答案:

答案 0 :(得分:0)

这是我们希望修复的Xamarin.iOS中的问题。

正在发生的情况是trigger在某个时候消失或被收集,随后又重新浮出水面,并且重新铺装不知道其实际隐藏的具体实现,因此您得到了以上消息

目前最好的解决方法是在托管代码中保持指向trigger的指针的活动状态,从而确保从不触发重铺表面。

我们正在这里跟踪:

https://github.com/xamarin/xamarin-macios/issues/3935#issuecomment-381200652