objective-c - 在 objective-c 中,值 "in"是其他一些值吗

标签 objective-c

来自极度被宠坏的家庭教育(turbo pascal、python、ruby),当我要自己做所有家务时,我有点困惑。

昨天是我找不到解决方案的日子之一。我必须检查一个值是否与其他一些值之一匹配。

 x = some_function_return_value();
 if x in (1,4,17,29,35):

我以前就是这样写的。现在使用 Objective-C 我显然不能那样做。我搜索了旧的谷歌,但没有找到答案,也没有找到旧的手册,那里什么也没有,那么你如何在 Objective-C 中做到这一点,而不是像下面这样胡思乱想?

 if (x == 1 || x == 4 || x == 17 || x == ...) {

已编辑:在这种情况下它是一个 (int),我知道对于 NSArray 和 NSString 有一些方法

最佳答案

如果是整数值,可以使用switch:

switch (x) {
    case 1:
    case 4:
    case 17:
    case 29:
    case 35:
        do_something();
        break;
}

不要忘记,在 C/C++/Objective-C 中,默认情况下,情况会进入下一个。您需要添加 break; 语句来防止这种情况发生。

对于非整数值,您必须执行大量重复的长 if 语句,因为 C 不提供许多脚本语言必须缩写的语法糖或功能。

另一种方法是准备一个数组,然后执行:

if ([myArray containsObject:[NSNumber numberWithInteger:x]])

或者更好的是,为此使用 NSSet。这适用于大多数对象,例如它也适用于字符串。

关于objective-c - 在 objective-c 中,值 "in"是其他一些值吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8063956/

相关文章:

iphone - 搜索栏取消按钮不起作用

ios - 包含对象 NSMutableArray

ios - 自定义委托(delegate)找不到声明

Linux 中的 Objective-C

objective-c - 计算 NSString 中大写字母和数字的出现次数

iphone - 匹配 NSString 中单词的开头

ios - 注册+确认密码iOS

ios - 使用 Storyboard和导航 Controller 检测 MPMoviePlayerController 上的点击

ios - 圆形渐变

iphone - View 禁用用户交互但 subview 启用(UIButtons)