Objective-C:使用NSString变量将消息发送到各种对象之一

max*_*son 0 cocoa cocoa-touch objective-c

我将使用JavaScript中的示例来帮助澄清我的问题.我们假设我有以下对象:

sports = {
   soccer: {...},
   basketball: {...},
   baseball: {...}
}
Run Code Online (Sandbox Code Playgroud)

如果在我的脚本中的某个时刻我有一个变量sportString,它只是一个字符串,我可以通过以下方式动态调用其中一个运动对象:

sports[sportString];
Run Code Online (Sandbox Code Playgroud)

这使我不必使用一堆嵌套的if语句,测试字符串的值,例如:

if(sportString === 'soccer'){
    sports.soccer;
}else if(sportString === 'basketball){....
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是如果sportString是一个NSString对象,如何在Objective-C中完成类似于sports [sportString]的东西呢?

Per*_*ion 6

使用NSDictionary作为运动对象.然后你可以做这样的查找:

[sports objectForKey: sportsString];
Run Code Online (Sandbox Code Playgroud)