Ошибка локального уведомления 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 по какой-либо причине занимает много времени, ваше приложение будет приостановлено до завершения кода.

Другие вопросы по тегам