Have you tried using a custom NSManagedObject subclass with a method that writes writes each object out to a dictionary with the keys and values that you want.
Then you can enumerate your NSSet and call this method on each object to create a collection of dictionaries.
I'm only giving you a general idea because you've asked a general question. If you try and write the code you can come back with any further problems that you face.