#objective-c #uilocalnotification #userinfo
#objective-c #uilocalnotification #userinfo
Вопрос:
Я пытаюсь присоединить NSManagedObjectID к UILocalNotification, но продолжаю получать сообщение об ошибке: список свойств недействителен для формата: 200 (списки свойств не могут содержать объекты типа ‘CFType’)
Вот мой код (идентификатор задачи — это идентификатор NSManagedObjectID):
// Create the new notification
UILocalNotification *newNotice = [[notificationClass alloc] init];
[newNotice setFireDate:date];
[newNotice setTimeZone:[NSTimeZone defaultTimeZone]];
[newNotice setAlertBody:@"Test text"];
// Add the object ID to the userinfo
NSDictionary *myUserInfo = [NSDictionary dictionaryWithObject:taskID forKey:@"TaskID"];
newNotice.userInfo = myUserInfo;
Идентификатор задачи передается в функцию с этим кодом (первый параметр):
addNotification([task objectID], [task taskname], [task taskexpiry]);
task — это NSManagedObject, и этот код был протестирован и работает нормально в течение длительного времени.
Из всего, что я прочитал, это должно сработать. Буду признателен за любую помощь.
Джейсон
Комментарии:
1. Опубликуйте код, в котором
taskID
определен и создан экземпляр, скорее всего, в этом и заключается проблема.2. Добавлено немного больше информации в сообщении о том, откуда берется TaskId.
Ответ №1:
userInfo
Должен быть допустимый список свойств. Посмотрите, что такое список свойств ?. NSManagedObjectID
ни один из типов не разрешен в списке свойств.
Попробуйте использовать [[taskID URIRepresentation] absoluteString]
как свой userInfo
. Вам придется использовать -[NSPersistentStoreCoordinator managedObjectIDForURIRepresentation:]
позже, чтобы превратить его обратно в NSManagedObjectID
.
Комментарии:
1. Потрясающе, это сработало! Спасибо, Роб.