1

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

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

2 回答 2

2

文档说:

一般来说,一个键可以是任何对象(只要它符合 NSCopying 协议——见下文)

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

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

id没有什么不同。如果您的对象符合,NSCopying那么您就可以开始了。如果没有,您将不得不将其包装在可以执行的操作中,例如NSData或只是实现NSCopying(后者将是“最干净的”)。

于 2012-07-20T10:16:09.583 回答
0

尝试像这样使用 NSMutableDictionary

NSMutableDictionary *tAndS = [[NSMutableDictionary alloc]init];
[tAndS setObject:target forKey:selector];
于 2012-07-20T10:09:18.950 回答