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];