diff --git a/impls/objc/types.m b/impls/objc/types.m index 356c746223..a935034a89 100644 --- a/impls/objc/types.m +++ b/impls/objc/types.m @@ -169,6 +169,19 @@ BOOL equal_Q(NSObject * a, NSObject * b) { return true; } else if ([a isKindOfClass:[NSNumber class]]) { return [(NSNumber *)a intValue] == [(NSNumber *)b intValue]; + } else if ([a isKindOfClass:[NSDictionary class]]) { + // isEqual see differences in metadata. + NSDictionary * da = (NSDictionary *)a; + NSDictionary * db = (NSDictionary *)b; + if ([da count] != [db count]) { + return false; + } + for (NSString * key in da) { + if (! equal_Q(da[key], db[key])) { + return false; + } + } + return true; } else { return [a isEqual:b]; }