nsdictionaryにIDとセレクターを追加するにはどうすればよいですか?これらは機能しません:
id target = mainTarget;
SEL selector=mainSelector;
NSDictionary *tAndS=[[NSDictionary alloc]initWithObjectsAndKeys:target,@"target",selector,@"selector", nil];
nsdictionaryにIDとセレクターを追加するにはどうすればよいですか?これらは機能しません:
id target = mainTarget;
SEL selector=mainSelector;
NSDictionary *tAndS=[[NSDictionary alloc]initWithObjectsAndKeys:target,@"target",selector,@"selector", nil];
ドキュメントには次のように書かれています。
一般に、キーは任意のオブジェクトにすることができます(NSCopyingプロトコルに準拠している場合-以下を参照)
セレクターはNSCopyingに準拠していませんが、ストリングに変換できます(プロトコルに準拠しています)。
NSString* sel = NSStringFromSelector(@selector(hello:));
違いはid
ありません。オブジェクトがに準拠してNSCopying
いる場合は、問題ありません。そうでない場合は、実装するなど、NSData
実装するものでラップする必要がありますNSCopying
(後者は「最もクリーン」です)。
このようにNSMutableDictionaryを使用してみてください
NSMutableDictionary *tAndS = [[NSMutableDictionary alloc]init];
[tAndS setObject:target forKey:selector];