Ошибка при настройке userInfo в UILocalNotification

#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. Потрясающе, это сработало! Спасибо, Роб.