如何向 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];