我遇到了带有NSMutableSet的respondsToSelector问题。
我有一个这样的程序:
NSArray *arguments = [[NSProcessInfo processInfo] arguments];
theClass = [arguments objectAtIndex: 1];
theMethod = [arguments objectAtIndex: 2];
theArgument = [arguments objectAtIndex: 3];
id object = [[NSClassFromString(theClass) init] autorelease];
if([object respondsToSelector:NSSelectorFromString(theMethod)]) {
NSLog(@"Result: %@",
[object performSelector:NSSelectorFromString(theMethod) withObject: theArgument]);
} else {
NSLog(@"Class %@ doesn't respond to %@.",
theClass, theMethod);
}
我使用 ./ program NSMutableSet addObject:str 来调用它,但程序总是说NSMutableSet不响应addObject:。
我不知道为什么respondsToSelector总是说NSMutableSet不响应addObject。它与 ./ program NSMutableSet allObjects 相同。
答案 0 :(得分:2)
你正在检查完全不同的东西......
[NSClassFromString(theClass) init]
需要
[[NSClassFromString(theClass) alloc] init]
代替。