diff --git a/NSObject+Properties.m b/NSObject+Properties.m index 851c8ac..3c3238d 100644 --- a/NSObject+Properties.m +++ b/NSObject+Properties.m @@ -22,7 +22,7 @@ - (NSDictionary *)dynamicProperties { NSDictionary* properties = [self properties]; for (NSString* key in properties) { NSArray* attributes = properties[key][@"attributes"]; - if ([attributes containsObject:@"D"]) { + if ([attributes containsObject:@"D"] && ![attributes containsObject:@"C"]) { output[key] = properties[key]; } } diff --git a/PFFile+NSCoding.m b/PFFile+NSCoding.m index 5f7422d..bad29ea 100644 --- a/PFFile+NSCoding.m +++ b/PFFile+NSCoding.m @@ -17,24 +17,27 @@ @implementation PFFile (NSCoding) - (void)encodeWithCoder:(NSCoder*)encoder { - [encoder encodeObject:self.name forKey:kPFFileName]; + [encoder encodeObject:self.name forKey:kPFFileName]; [encoder encodeObject:self.url forKey:kPFFileURL]; - if (self.isDataAvailable) { - [encoder encodeObject:[self getData] forKey:kPFFileData]; - } + if (self.isDataAvailable) { + [encoder encodeObject:[self getData] forKey:kPFFileData]; + } } - (id)initWithCoder:(NSCoder*)aDecoder { - NSString* name = [aDecoder decodeObjectForKey:kPFFileName]; + NSString* name = [aDecoder decodeObjectForKey:kPFFileName]; NSString* url = [aDecoder decodeObjectForKey:kPFFileURL]; - NSData* data = [aDecoder decodeObjectForKey:kPFFileData]; - - self = [PFFile fileWithName:name data:data]; - if (self) { - [self setValue:url forKey:@"_url"]; - } - return self; + NSData* data = [aDecoder decodeObjectForKey:kPFFileData]; + + if (data) { + self = [PFFile fileWithName:name data:data]; + if (self) { + [self setValue:url forKey:@"_url"]; + } + return self; + } + return nil; } @end diff --git a/PFObject+NSCoding.m b/PFObject+NSCoding.m index 835f463..51aa492 100644 --- a/PFObject+NSCoding.m +++ b/PFObject+NSCoding.m @@ -71,7 +71,9 @@ - (id)initWithCoder:(NSCoder*)aDecoder //Deserialize all non-nil Parse properties for (NSString* key in allKeys) { id obj = [aDecoder decodeObjectForKey:key]; - self[key] = obj; + if (obj) { + self[key] = obj; + } } //Deserialize all nil Parse properties with NSNull