如何向nsdictionary添加id和selector?这些不起作用:
id target = mainTarget;
SEL selector=mainSelector;
NSDictionary *tAndS=[[NSDictionary alloc]initWithObjectsAndKeys:target,@"target",selector,@"selector", nil];
答案 0 :(得分:2)
通常,密钥可以是任何对象(前提是它符合 NSCopying协议 - 见下文)
选择器不符合NSCopying,但可以将一个转换为字符串(符合协议):
NSString* sel = NSStringFromSelector(@selector(hello:));
id
也不例外。如果你的对象符合NSCopying
那么你就可以了。如果没有,你将不得不把它包装成一些东西,例如NSData
或只是实现NSCopying
(后者将是“最干净的”)。
答案 1 :(得分:0)
尝试使用像这样的NSMutableDictionary
NSMutableDictionary *tAndS = [[NSMutableDictionary alloc]init];
[tAndS setObject:target forKey:selector];