Сбой UILocalNotification - PullRequest
       20

Сбой UILocalNotification

3 голосов
/ 09 января 2011

Не могли бы вы мне помочь?

Я настраиваю UILocalNotification, и он вылетает, когда я пытаюсь установить его словарь userInfo.fetchedObjects содержит 88 объектов.

Вот код:

    NSDictionary* myUserInfo = [NSDictionary dictionaryWithObject: fetchedObjects forKey: @"textbody"];

 UILocalNotification *localNotif = [[UILocalNotification alloc] init];
 if (localNotif == nil)
        return;

 // défining the interval
 NSTimeInterval oneMinute = 60;

 localNotif.timeZone = [NSTimeZone localTimeZone];
 NSDate *fireDate = [[NSDate alloc]initWithTimeIntervalSinceNow:oneMinute];
 localNotif.fireDate = fireDate;

 localNotif.userInfo = myUserInfo; //this is the line that crashes the app
    [fetchedObjects release];

, и консоль дает мне следующее:

Property list invalid for format: 200
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'unable to serialize userInfo: (null)'

Есть идеи?

Ответы [ 2 ]

10 голосов
/ 29 августа 2011

На самом деле, даже если используется объект, совместимый с NSCoding, UILocalNotification генерирует исключение NSInvalidArgumentException при вызове setUserInfo. Очевидно, что UILocalNotification содержит более строгую интерпретацию типов списка свойств, в которой разрешены только объекты запаса, указанные в Руководстве по программированию списка свойств. Вы можете обойти это, используя NSKeyedArchiver для сериализации вашего собственного NSCoding-совместимого объекта в экземпляр NSData, который можно безопасно передать UILocalNotification в словаре userInfo.

7 голосов
/ 09 января 2011

Похоже, в вашем словаре userInfo есть объекты, которые не реализуют протокол NSCoding. Все в этом словаре должно быть в состоянии записать на «диск», так как ваше приложение может не работать, когда срабатывает уведомление. Если там есть что-то, что нельзя сериализовать, это результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...