If this is for testing purposes, why not just add NSObject:isEqual? It's effectively the same thing and a little more flexible. There are theoretical perf costs vs isEqualToDictionary if this function is going to get used in hot spots, though.