Compare value: |
With value: |
Result: |

numeric scalar |
numeric scalar |
automated casting takes place prior to comparison, warning printed to console at runtime if risky casts are required (for example signed and unsigned) |

id |
id |
compared using isEqual: if right-handle value implements that method, otherwise default NSValue isEqualToValue: behaviour used |

id |
numeric scalar |
comparison allowed if and only if the numeric scalar value is equivalent to "nil", otherwise throws exception |

numeric scalar |
id |
comparison allowed if and only if the numeric scalar value is equivalent to "nil", otherwise throws exception |

void * |
numeric scalar |
comparison allowed if and only if the numeric scalar value is equivalent to "nil", otherwise throws exception |

numeric scalar |
void * |
comparison allowed if any only if the numeric scalar value is equivalent to "nil", otherwise throws exception |

char* |
char[] |
if possible creates NSString representations of the two values and compares them; if comparison not possible falls back to default NSValue isEqualToValue: behaviour |

char[] |
char * |
if possible creates NSString representations of the two values and compares them; if comparison not possible falls back to default NSValue isEqualToValue: behaviour |

const char* |
char[] |
if possible creates NSString representations of the two values and compares them; if comparison not possible falls back to default NSValue isEqualToValue: behaviour |

char[] |
const char* |
if possible creates NSString representations of the two values and compares them; if comparison not possible falls back to default NSValue isEqualToValue: behaviour |