使用NSString变量来调用函数

时间:2013-06-09 00:57:36

标签: iphone function variables nsstring

是否可以以任何方式使用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];

但既然那是不可能的 - 还有其他方法来实现这个想法吗?

1 个答案:

答案 0 :(得分:1)

这不是不可能的,但应该真的避免。 Objective C calling method dynamically with a string

上有一个类似的问题

编译器会抱怨并使用此方法可能会导致问题。例如,如果用户设法输入无效的方法名称,这将使您的应用程序崩溃(这当然也可能发生在应用程序设计不佳的情况下)

您一直在使用的切换方法是一种更好的方法。