You cannot achieve this..
As Apple is not allow to run any method continuously even the app is in Background...
Only solution is to use local notifications.
I know you are don't what to use Local Notifications but I am keeping code that might be helpful...
ViewController.m
UIApplication* app = [UIApplication sharedApplication];
NSArray* oldNotifications = [app scheduledLocalNotifications];
if ([oldNotifications count] > 0)
[app cancelAllLocalNotifications];
NSCalendar* myCalendar = [NSCalendar currentCalendar];
NSDateComponents* components = [myCalendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit
fromDate:[NSDate date]];
[components setHour: 10];
[components setMinute: 00];
[components setSecond: 0];
NSDate *alertTime = [myCalendar dateFromComponents:components];
NSLog(@"@@@@@@@@@@@@Local Notification Set Time is:%@",alertTime);
UILocalNotification *notifyAlarm = [[UILocalNotification alloc]
init];
if (notifyAlarm)
{
notifyAlarm.fireDate = alertTime;
notifyAlarm.userInfo=[[NSDictionary alloc]initWithObjectsAndKeys:@“ViewController”,@“Home”, nil];
//notifyAlarm.applicationIconBadgeNumber=1;
notifyAlarm.timeZone = [NSTimeZone defaultTimeZone];
notifyAlarm.repeatInterval = NSHourCalendarUnit;
notifyAlarm.soundName = @"iPhone_Tritone.mp3";
notifyAlarm.alertBody = @“Calling Method”;
[app scheduleLocalNotification:notifyAlarm];
}
AppDelegate.m
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
NSLog(@"@@@@@@@@@@Did Receive Local Notification@@@@@@@@@@@ is:%@",notification.userInfo);
[self callingUrMethod];
}
Else you achieve it by using Push Notifications to be fired by server everyday at 10AM based on iPhone Device Time...