Unicode strings use the ICU libraries to perform equality operations, while traditional strings use traditional character-based equality. To avoid some conditions where the equality semantics are different, equality comparisons between a traditional and Unicode string using = have been disallowed in v3.2
This change impacts operations such as includes: that rely on = to identify objects, as well as ordering of objects in collections using <, <=, >, and >=. Identity-based comparisons using == or ~~ are unaffected.
You should avoid mixing traditional and Unicode strings in collections.
Using compareTo:collator: will allow any strings to be compared using Unicode rules.
If you enable Unicode comparison mode, it will redefine = for traditional strings and symbols to use the ICU libraries to perform equality and ordering operations; in which case compares will not longer be an issue.
Last updated: 5/5/14