0

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

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

4

1 回答 1

1

这并非不可能,但确实应该避免。有一个类似的问题位于Objective C 用字符串动态调用方法

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

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

于 2013-06-09T00:59:42.697 回答