Use NSNull() to get a null object, which you can then compare to another NSNull() to see if its empty or not.
Collisions are not "generally OK". The underlying assumption is that the hash value of x is the hash value of y if and only if x == y. If you consider column 2, row 1 the same as column 1, row 2, then fine. But I don't think you do!...