If条件中的OR和AND语法

时间:2011-05-24 10:11:37

标签: iphone

我想将所有声音文件保存在一个数组中,如.caf,.avi,.mp3 ..如何检查OR条件。我对语法感到困惑。

#define kSoundFileExtension @"caf"
#define kSoundfileExtnesion @"mp3"

    if ([fileName rangeOfString:kSoundFileExtension].location != NSNotFound) {
                [self.soundFiles addObject:fileName];
    }

3 个答案:

答案 0 :(得分:3)

您需要为每个扩展名提供不同的标识符,然后检查两者,如下所示:

#define kSoundFileCAFExtension @"caf"
#define kSoundFileMP3Extension @"mp3"

if (([fileName rangeOfString:kSoundFileCAFExtension].location != NSNotFound) ||
    ([fileName rangeOfString:kSoundFileMP3Extension].location != NSNotFound)) {
            [self.soundFiles addObject:fileName];
}

答案 1 :(得分:2)

NSArray *exts = [NSArray arrayWithObjects:@"caf",@"mp3",nil];

for(NSString *ext in exts) {
    if ([[fileName pathExtension] isEqualToString:ext]) {
        [self.soundFiles addObject:fileName];
        break;
    }
}

答案 2 :(得分:1)

这适用于 OR

if (([fileName rangeOfString:kSoundFileCAFExtension].location != NSNotFound) ||
([fileName rangeOfString:kSoundFileMP3Extension].location != NSNotFound)) {  

这适用于 AND

if (([fileName rangeOfString:kSoundFileCAFExtension].location != NSNotFound) &&
([fileName rangeOfString:kSoundFileMP3Extension].location != NSNotFound)) {  

第一种情况中,有两种需要满足条件,而第二种情况都需要满足条件。