2011-01-13 2 views
1

Я пытаюсь сделатьUILocalNotification USERINFO не сериализации NSURL

UILocalNotification *notification = [[UILocalNotification alloc] init]; 
NSURL *urlForSomeObject=[[(NSManagedObject *)someObject objectID] URIRepresentation]; 
notification.fireDate = aDate; 
notification.timeZone = [NSTimeZone systemTimeZone]; 
notification.soundName = UILocalNotificationDefaultSoundName; 
notification.applicationIconBadgeNumber = 1; 
notification.userInfo=[NSDictionary dictionaryWithObject:urlForSomeObject   forKey:@"objectUrl"]; 

, когда уведомление происходит приложение дает исключение unable to serialize userInfo: (null)' Я проверил, что [NSDictionary dictionaryWithObject: urlForSomeObject forKey: @ "objectUrl"] возвращает действительный словарь , Почему такое поведение происходит. Насколько я знаю, NSURL придерживается протокола NSCoding и должен быть сериализован. Может кто-нибудь мне помочь?

ответ

6

Словарь пользовательской информации в UILocalNotification должен содержать только «типы plist». NSURL не является типом plist. Я предлагаю сериализовать URL как строку в словаре, а затем преобразовать его в NSURL, когда вы получите уведомление.

Смежные вопросы