如何添加一個id和選擇器到nsdictionary?這些不工作:如何添加一個id和選擇器到nsdictionary?
id target = mainTarget;
SEL selector=mainSelector;
NSDictionary *tAndS=[[NSDictionary alloc]initWithObjectsAndKeys:target,@"target",selector,@"selector", nil];
如何添加一個id和選擇器到nsdictionary?這些不工作:如何添加一個id和選擇器到nsdictionary?
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];
可變字典與非可變字典具有完全相同的約束。顯然,除了可變性。 – 2012-07-20 10:17:33