UIColorオブジェクトをNSMutableDictionaryのキーとして一日中設定でき、すべてが正常で幸せです...
例えば:
[myDict setObject:foo forKey:[UIColor redColor]];
それはうまくいきます...私が以下を使おうとしない限り:
UIColor *black = [[UIColor alloc] initWithRed:0 green:0 blue:0 alpha:1];
[myDict setObject:foo forKey:black];
それはいつも私に与えます:
-[UIDeviceRGBColor copyWithZone:]:認識されないセレクターがインスタンス0x691be80に送信されました
RGB色空間で黒を定義する理由は、この質問にとって重要ではありません。そのように定義する必要があることを知っておいてください。私が理解していないのは、なぜこれとこの色だけが問題を引き起こしているのか、そしてなぜエラーがcopyWithZoneエラーであるのかということです。
記録としては、[UIColor blackColor]がキーとして機能しますが、RGB色空間ではないため、私のアプリケーションには適していません。