Ошибка локального уведомления iOS
При минимизации приложения все хорошо, но когда я пытаюсь развернуть бум, продолжающийся, эта ошибка '
-(void) applicationDidEnterBackground:(UIApplication *)application
{
NSDate *alertTime = [[NSDate date] dateByAddingTimeInterval:5];
UIApplication* app = [[UIApplication sharedApplication] init];
UILocalNotification* notifyAlarm = [[UILocalNotification alloc] init];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:kAllNews]];
NSError *error = nil;
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&error];
NSError *jsonParsingError = nil;
sortArray = [NSJSONSerialization JSONObjectWithData:response options:0 error:&jsonParsingError];
if (notifyAlarm)
{
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"news"])
{
newsNew = [NSMutableArray arrayWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"news"]];
}
if (newsNew.count > sortArray.count) {
notifyAlarm.fireDate = alertTime;
notifyAlarm.timeZone = [NSTimeZone defaultTimeZone];
notifyAlarm.repeatInterval = 0;
notifyAlarm.soundName = @"Glass.aiff";
notifyAlarm.alertAction = @"Gipoteza";
notifyAlarm.alertBody = @"Добавлена новая новость";
[app scheduleLocalNotification:notifyAlarm];
}
}
}
1 ответ
Пара предложений:
Первый; Вы пытались вместо этого поместить свой код в applicationWillResignActive?
Почему вы получаете ссылку на UIApplication в своем коде? У вас уже есть это в качестве параметра для метода...
Попробуйте установить точки останова в своем коде, чтобы точно определить, где происходит эта ошибка. Я предполагаю, что это происходит в последней строке: [app scheduleLocalNotification:notifyAlarm], и это происходит потому, что ваш объект notifyAlarm по какой-то причине равен нулю. Используйте ваш отладчик, чтобы пройтись по коду, чтобы увидеть, действительно ли этот объект установлен.
Также; имейте в виду, что ваш код имеет максимум 5 секунд с момента деактивации до его приостановки. Когда приостановлено; никакой код не может быть запущен. Если, например, ваш запрос NSURLConnection по какой-либо причине занимает много времени, ваше приложение будет приостановлено до завершения кода.