0

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]);

task は NSManagedObject であり、そのコードは長い間テストされ、正常に動作しています。

私が読んだすべてから、これはうまくいくはずです。どんな助けでも大歓迎です。

ジェイソン

4

1 に答える 1

13

userInfo有効なプロパティリストである必要があります。プロパティリストとは何ですか?を参照してください。。 NSManagedObjectIDプロパティリストで許可されているタイプのいずれでもありません。

として使用[[taskID URIRepresentation] absoluteString]してみてくださいuserInfo。後で使用-[NSPersistentStoreCoordinator managedObjectIDForURIRepresentation:]して、に戻す必要がありNSManagedObjectIDます。

于 2011-10-27T18:27:54.660 に答える