Question: What is the proper way to save parse objects locally? I placed them in an NSMutableDictionary and tried saving them with NSUserDefaults but that failed with this error, "Attempt to set a non-property-list object as an NSUserDefaults value".

I want to upload my object to Parse and save locally too. Kind of like caching it. I know that parse offers query caching but I need to cache when uploading too, not just when querying.

If it makes a difference, the items inside my pfobject are strings and piffles (images).

I would appreciate if somebody could point me in the right direction.

Answer: 
parse has added this feature on 9th December for iOS
 <http://blog.parse.com/2014/12/09/parse-local-datastore-for-ios/>
Only property lists can be saved into `NSUserDefaults`. Property list types are following: `NSArray`, `NSDictionary`, `NSString`, `NSData`, `NSDate`, `NSNumber` (see [property lists description](https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/PropertyLists/AboutPropertyLists/AboutPropertyLists.html#//apple_ref/doc/uid/10000048i-CH3-SW2)). 

If some class conforms to the `NSCoding` protocol then it can be serialized into `NSData` and thus saved into `NSUsedDefaults` (see for example the [Storing NSColor in User Defaults](https://developer.apple.com/library/mac/Documentation/Cocoa/Conceptual/DrawColor/Tasks/StoringNSColorInDefaults.html) article).

But the `PFObject` class doesn't conform to the `NSCoding` protocol, so there is no way to serialize it into `NSData` and save to user defaults.

However, as I understood, you can [create `NSDictionary` from `PFObject`](https://parse.com/questions/converting-a-pfobject-to-nsdictionarynsmutabledictionary); you can save `NSDictionary` to `NSUserDefaults` and later restore `PFObject` from the saved `NSDictionary`.