率直に言って、それはかなり詳細な質問です。NSMutableDictionaryのAppleドキュメントhttps://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSMutableDictionary_Class/Reference/Reference.htmlは次のように述べています。
setObject:forKey:
Adds a given key-value pair to the dictionary.
- (void)setObject:(id)anObject forKey:(id)aKey
それによると、パラメータforKey
は任意のオブジェクトを受け入れます。ただし、NSNumberを渡そうとすると、Incompatible pointer types sending 'NSNumber *' to parameter of type 'NSString *'
明らかに一部のNSStringのみがキーとして受け入れられます。
とりあえず、番号を文字列に変換します。結局、それはただの鍵です。しかし、誰が正しいか知っている人はいますか?ドキュメントまたはコンパイラ?