是否可以以任何方式使用NSString变量作为在XCode中调用函数的方法?
这只是一个例子。我有一个名为[Settings getBest1]的函数,它获得了第一级的高分,[Settings getBest2]获得了第二级的高分,依此类推了几个级别。
我有一个整数值,这是我希望看到的高分。 编写应用程序的最佳方法是什么,以便我可以使用此整数来调用正确的函数?没有比这更好的方法了:
switch(levelInt) {
case 1: [Settings getBest1]; break;
case 2: [Settings getBest2]; break;
case 3: [Settings getBest3]; break;
case 4: [Settings getBest4]; break;
...
}
我希望能够做到不可能的事情:
NSString *getBestString = [NSString stringWithFormat:@"getBest%i", levelInt];
[Settings getBestString];
但既然那是不可能的 - 还有其他方法来实现这个想法吗?
答案 0 :(得分:1)
这不是不可能的,但应该真的避免。 Objective C calling method dynamically with a string
上有一个类似的问题编译器会抱怨并使用此方法可能会导致问题。例如,如果用户设法输入无效的方法名称,这将使您的应用程序崩溃(这当然也可能发生在应用程序设计不佳的情况下)
您一直在使用的切换方法是一种更好的方法。