ios nstimer läuft im Hintergrund, um die Weckzeit zu überprüfen und Audio abzuspielen

Ich habe stundenlang gegoogelt, konnte aber keine Informationen finden, wenn es eine Möglichkeit gibt, einen laufenden NSTimer aktiv zu halten, während die App im Hintergrund läuft. Bitte hilf mir, wenn die App in den Hintergrund geht, wird eine Funktion ausgeführt und jede Sekunde überprüft, ob die Alarmzeit der aktuellen Zeit entspricht. Dann wird Audio abgespielt und die Alarmseite geöffnet. Wenn jemand die Open Source-Alarm-App und ihre Ausführung im Hintergrund kennt, teile sie mir bitte mit Hier versuche ich das, aber das funktioniert nicht

- (void)applicationDidEnterBackground:(UIApplication *)application
{

    inBackground=YES;
    UIApplication*    app = [UIApplication sharedApplication];

    bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
        [app endBackgroundTask:bgTask];
        bgTask = UIBackgroundTaskInvalid;
    }];

    // Start the long-running task and return immediately.
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        while (inBackground == YES) {


            [NSTimer scheduledTimerWithTimeInterval:1.0 target:self
                                          selector:@selector(checkAlert) userInfo:nil repeats:YES];

        }


        [app endBackgroundTask:bgTask];
        bgTask = UIBackgroundTaskInvalid;
    });

}
-(void)checkAlert
{
    NSLog(@"Chalaaaaaa");
    NSString *checkAlarmOnOff = [defaults stringForKey:@"setAlarm"];
    // Switch Alarm From Setting page
    NSString *SwitchAlarm=[defaults stringForKey:@"setSwitchAlarm"];

    if([SwitchAlarm isEqualToString:@"ON"])
    {
        if([checkAlarmOnOff isEqualToString:@"YES"])
        {
            if(![alarmRun isEqualToString:@"Yes"])
            {

                NSString *getAlarmTime = [defaults stringForKey:@"setAlarmTime"];
                 NSLog(@"AA-%@",getAlarmTime);
                 NSLog(@"BB-%@",globalClockTime);
                if([getAlarmTime isEqualToString:globalClockTime])
                {
                    [self MusicAction];

                    [_audioPlayer play];
                    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alarm" message:@"Alarm On" delegate:self cancelButtonTitle:@"Off" otherButtonTitles:nil, nil];
                    [alert show];
                    alarmRun=@"Yes";

                }
            }

        }
    }


}

Bitte hilf mir,

Antworten auf die Frage(3)

Ihre Antwort auf die Frage