2011-10-27 4 views
0

UILocalNotification NSManagedObjectID 첨부 할 노력하고 있지만 오류가 계속 : 속성 목록 형식 : 200 (속성 목록에 'CFType'형식의 개체를 포함 할 수 없습니다.)UILocalNotification에서 UserInfo를 설정할 때 오류가 발생했습니다.

여기 내 코드가 있습니다 (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이며이 코드는 테스트를 거쳐 오랫동안 정상적으로 작동합니다.

내가 읽은 모든 것에서 이것이 효과가있다. 어떤 도움이라도 대단히 감사하겠습니다.

Jason

+0

'taskID'가 정의되고 인스턴스화 된 코드를 게시하면 문제가있는 곳이 있습니다. – Jim

+0

taskID가 어디에서 왔는지에 대한 정보를 추가했습니다. – Jason

답변

13

userInfo 유효한 속성 목록을해야합니다. What is a Property List?을 참조하십시오. NSManagedObjectID은 속성 목록에 허용 된 유형이 아닙니다.

userInfo으로 [[taskID URIRepresentation] absoluteString]을 사용해보세요. 나중에 -[NSPersistentStoreCoordinator managedObjectIDForURIRepresentation:]을 사용하여 NSManagedObjectID으로 다시 설정해야합니다.

+0

신난다, 그랬다! 롭 감사합니다. – Jason

관련 문제