Iphone If条件下的OR和语法

Iphone If条件下的OR和语法,iphone,Iphone,我想将所有声音文件保存在一个数组中,如.caf、.avi、.mp3。。我如何检查或设置这个条件。我对语法感到困惑 #define kSoundFileExtension @"caf" #define kSoundfileExtnesion @"mp3" if ([fileName rangeOfString:kSoundFileExtension].location != NSNotFound) { [self.soundFiles addObject:

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

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

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

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

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

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

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

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

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

这适用于

if (([fileName rangeOfString:kSoundFileCAFExtension].location != NSNotFound) ||
([fileName rangeOfString:kSoundFileMP3Extension].location != NSNotFound)) {  
if (([fileName rangeOfString:kSoundFileCAFExtension].location != NSNotFound) &&
([fileName rangeOfString:kSoundFileMP3Extension].location != NSNotFound)) {  
这是针对

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

第一种情况下两种情况中的任何一种都需要满足条件,在第二种情况下两种情况都需要满足条件。

这适用于

if (([fileName rangeOfString:kSoundFileCAFExtension].location != NSNotFound) ||
([fileName rangeOfString:kSoundFileMP3Extension].location != NSNotFound)) {  
if (([fileName rangeOfString:kSoundFileCAFExtension].location != NSNotFound) &&
([fileName rangeOfString:kSoundFileMP3Extension].location != NSNotFound)) {  
这是针对

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

第一种情况下两种情况中的任何一种都需要满足条件,而在第二种情况下两种情况都需要满足条件。

我认为最好在if语句中添加一个中断,如下所示:NSArray*exts=[NSArray arraywhithobjects:@“caf”,@“mp3”,nil];对于(NSString*ext-in-exts){if([fileName rangeOfString:ext].location!=NSNotFound){[self.soundFiles addObject:fileName];break;}完成。另外,与此问题无关,但最好使用
NSString
pathExtension
而不是
rangeOfString
来检查文件扩展名。我认为最好在if语句中添加一个分隔符,如下所示:NSArray*exts=[NSArray array with objects:@“caf”,@“mp3”,nil];for(NSString*exts中的ext){if([fileName rangeOfString:ext].location!=NSNotFound){[self.soundFiles addObject:fileName];break;}完成。此外,与此问题无关,但最好使用
NSString
pathExtension
而不是
rangeOfString
来检查文件扩展名。虽然在现实生活中,您可能永远不会想检查文件是否同时具有.mp3和.caf扩展名。andy只是区分了这两个概念s:)虽然在现实生活中,你可能永远都不想检查一个文件是否同时具有.mp3和.caf扩展名,但andy.只是区分了这两个概念:)