Skip to content

Commit a5e132e

Browse files
authored
Fix issues with nested collections in dictionaryObjectRepresentation (#126)
* Fix issues with nested collections * More tests
1 parent aa069d2 commit a5e132e

File tree

11 files changed

+623
-287
lines changed

11 files changed

+623
-287
lines changed

Examples/Cocoa/Sources/Objective_C/Board.m

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -284,71 +284,73 @@ - (NSDictionary *)dictionaryObjectRepresentation
284284
{
285285
NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithCapacity:9];
286286
if (_boardDirtyProperties.BoardDirtyPropertyContributors) {
287-
if (_contributors != nil) {
288-
NSSet *items0 = _contributors;
287+
if (_contributors != (id)kCFNull) {
288+
__auto_type items0 = _contributors;
289289
NSMutableArray *result0 = [NSMutableArray arrayWithCapacity:items0.count];
290-
for (id obj0 in items0) {
291-
if (obj0 != (id)kCFNull) {
292-
[result0 addObject:[obj0 dictionaryObjectRepresentation]];
293-
}
290+
for (User * obj0 in items0) {
291+
[result0 addObject:[obj0 dictionaryObjectRepresentation]];
294292
}
295293
[dict setObject:result0 forKey:@"contributors"];
296294
} else {
297295
[dict setObject:[NSNull null] forKey:@"contributors"];
298296
}
299297
}
300298
if (_boardDirtyProperties.BoardDirtyPropertyCounts) {
301-
if (_counts != nil) {
299+
if (_counts != (id)kCFNull) {
302300
[dict setObject:_counts forKey:@"counts"];
303301
} else {
304302
[dict setObject:[NSNull null] forKey:@"counts"];
305303
}
306304
}
307305
if (_boardDirtyProperties.BoardDirtyPropertyCreatedAt) {
308-
NSValueTransformer *valueTransformer = [NSValueTransformer valueTransformerForName:kPlankDateValueTransformerKey];
309-
if (_createdAt != nil && [[valueTransformer class] allowsReverseTransformation]) {
310-
[dict setObject:[valueTransformer reverseTransformedValue:_createdAt] forKey:@"created_at"];
306+
if (_createdAt != (id)kCFNull) {
307+
NSValueTransformer *valueTransformer = [NSValueTransformer valueTransformerForName:kPlankDateValueTransformerKey];
308+
if ([[valueTransformer class] allowsReverseTransformation]) {
309+
[dict setObject:[valueTransformer reverseTransformedValue:_createdAt] forKey:@"created_at"];
310+
} else {
311+
[dict setObject:[NSNull null] forKey:@"created_at"];
312+
}
311313
} else {
312314
[dict setObject:[NSNull null] forKey:@"created_at"];
313315
}
314316
}
315317
if (_boardDirtyProperties.BoardDirtyPropertyCreator) {
316-
if (_creator != nil) {
318+
if (_creator != (id)kCFNull) {
317319
[dict setObject:_creator forKey:@"creator"];
318320
} else {
319321
[dict setObject:[NSNull null] forKey:@"creator"];
320322
}
321323
}
322324
if (_boardDirtyProperties.BoardDirtyPropertyDescriptionText) {
323-
if (_descriptionText != nil) {
325+
if (_descriptionText != (id)kCFNull) {
324326
[dict setObject:_descriptionText forKey:@"description"];
325327
} else {
326328
[dict setObject:[NSNull null] forKey:@"description"];
327329
}
328330
}
329331
if (_boardDirtyProperties.BoardDirtyPropertyIdentifier) {
330-
if (_identifier != nil) {
332+
if (_identifier != (id)kCFNull) {
331333
[dict setObject:_identifier forKey:@"id"];
332334
} else {
333335
[dict setObject:[NSNull null] forKey:@"id"];
334336
}
335337
}
336338
if (_boardDirtyProperties.BoardDirtyPropertyImage) {
337-
if (_image != nil) {
339+
if (_image != (id)kCFNull) {
338340
[dict setObject:[_image dictionaryObjectRepresentation] forKey:@"image"];
339341
} else {
340342
[dict setObject:[NSNull null] forKey:@"image"];
341343
}
342344
}
343345
if (_boardDirtyProperties.BoardDirtyPropertyName) {
344-
if (_name != nil) {
346+
if (_name != (id)kCFNull) {
345347
[dict setObject:_name forKey:@"name"];
346348
} else {
347349
[dict setObject:[NSNull null] forKey:@"name"];
348350
}
349351
}
350352
if (_boardDirtyProperties.BoardDirtyPropertyUrl) {
351-
if (_url != nil) {
353+
if (_url != (id)kCFNull) {
352354
[dict setObject:[_url absoluteString] forKey:@"url"];
353355
} else {
354356
[dict setObject:[NSNull null] forKey:@"url"];

0 commit comments

Comments
 (0)