NSDictionaryのキー
NSDictionaryのキーってidなんだけれど、NSString以外でもOKなんだ。要はisEqual:送ってYESならキーとして成り立つ。
で、やってみた。
#pragma mark NSDictionary key -(void)method007 { //NSDictionaryを作成 NSDictionary *keyDictionary = [NSDictionary dictionaryWithObjectsAndKeys:[NSNull null],@"key1",@"bbb",@"key2",@"ccc",@"key3", nil]; NSString *str = [NSString stringWithString:@"aaa"]; NSDictionary *aDictionary = [NSDictionary dictionaryWithObject:str forKey:keyDictionary]; NSLog(@"%s aDictionary %p = %@",__FUNCTION__,aDictionary,[aDictionary description]); //=>-[OOOAppDelegate method007] aDictionary 0x6b574d0 = {{key1 = "<null>";key2 = bbb;key3 = ccc;} = aaa;} NSLog(@"%s str %p = %@",__FUNCTION__,str,str); NSLog(@"%s str %p = %@",__FUNCTION__,[aDictionary objectForKey:keyDictionary],[aDictionary objectForKey:keyDictionary]); //-[OOOAppDelegate method007] str 0x463c = aaa //-[OOOAppDelegate method007] str 0x463c = aaa }
ああ、大丈夫みたい。
NSDictionaryがNSDictionaryのキーになる。全く意味ないけど。