如何在nsdictionary中添加id和selector?

时间:2012-07-20 10:04:46

标签: ios

如何向nsdictionary添加id和selector?这些不起作用:

id target = mainTarget;
    SEL selector=mainSelector;
    NSDictionary *tAndS=[[NSDictionary alloc]initWithObjectsAndKeys:target,@"target",selector,@"selector", nil];

2 个答案:

答案 0 :(得分:2)

The documentation说:

  

通常,密钥可以是任何对象(前提是它符合   NSCopying协议 - 见下文)

选择器不符合NSCopying,但可以将一个转换为字符串(符合协议):

NSString* sel = NSStringFromSelector(@selector(hello:));

id也不例外。如果你的对象符合NSCopying那么你就可以了。如果没有,你将不得不把它包装成一些东西,例如NSData或只是实现NSCopying(后者将是“最干净的”)。

答案 1 :(得分:0)

尝试使用像这样的NSMutableDictionary

NSMutableDictionary *tAndS = [[NSMutableDictionary alloc]init];
[tAndS setObject:target forKey:selector];