Public Sub CreateNotificationWithContentAndScheduling(Title As String, Body As String, Identifier As String, Category As String,DateComponent As NotificationCenter_DateComponents,Repeats As Boolean)
Dim ln As NativeObject
ln = ln.Initialize("UNMutableNotificationContent").RunMethod("new", Null)
ln.SetField("title", Title)
ln.SetField("body", Body)
Dim n As NativeObject
ln.SetField("sound", n.Initialize("UNNotificationSound").RunMethod("defaultSound", Null))
If Category <> "" Then ln.SetField("categoryIdentifier", Category)
Dim dateComponents As NativeObject
dateComponents = dateComponents.Initialize("NSDateComponents").RunMethod("new", Null)
If DateComponent.Year > 0 Then dateComponents.SetField("year", DateComponent.Year)
If DateComponent.Month > 0 Then dateComponents.SetField("month", DateComponent.Month)
If DateComponent.Day > 0 Then dateComponents.SetField("day", DateComponent.Day)
If DateComponent.Hour > 0 Then dateComponents.SetField("hour", DateComponent.Hour)
If DateComponent.Minute > 0 Then dateComponents.SetField("minute", DateComponent.Minute)
If DateComponent.Second > 0 Then dateComponents.SetField("second", DateComponent.Second)
If DateComponent.Weekday > 0 Then dateComponents.SetField("weekday", DateComponent.Weekday)
Dim trigger As NativeObject
trigger = trigger.Initialize("UNCalendarNotificationTrigger").RunMethod("triggerWithDateMatchingComponents:repeats:", Array(dateComponents, Repeats))
Dim request As NativeObject
request = request.Initialize("UNNotificationRequest").RunMethod("requestWithIdentifier:content:trigger:", _
Array(Identifier, ln, trigger))
Dim NotificationCenter As NativeObject
NotificationCenter = NotificationCenter.Initialize("UNUserNotificationCenter").RunMethod("currentNotificationCenter", Null)
NotificationCenter.RunMethod("addNotificationRequest:", Array(request))
End Sub