Ошибка при установке UserInfo в UILocalNotification - PullRequest
0 голосов
/ 27 октября 2011

Я пытаюсь прикрепить NSManagedObjectID к UILocalNotification, но продолжаю получать сообщение об ошибке: Список свойств недопустим для формата: 200 (списки свойств не могут содержать объекты типа 'CFType')

Вот мой код (taskIDявляется 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;

taskID передается в функцию с этим кодом (первый параметр):

addNotification([task objectID], [task taskname], [task taskexpiry]);

задача - NSManagedObject, и этот код был протестирован и работает нормальнов течение длительного времени.

Из всего, что я прочитал, это должно работать.Любая помощь будет принята с благодарностью.

Джейсон

1 Ответ

13 голосов
/ 27 октября 2011

userInfo должен быть действительным списком свойств. См. Что такое список свойств? . NSManagedObjectID не относится ни к одному из типов, разрешенных в списке свойств.

Попробуйте использовать [[taskID URIRepresentation] absoluteString] в качестве userInfo. Вам придется использовать -[NSPersistentStoreCoordinator managedObjectIDForURIRepresentation:] позже, чтобы превратить его в NSManagedObjectID.

...