【Swift4】配列Array・NSArray・NSMutableArrayに要素があるかどうかを調べる方法【Objective-C】

2020年8月26日

配列に要素があるかどうかを調べる方法です。

配列には色々な種類があり、Objective-CではNSArray・NSMutableArray
Swift4では2つに加え、さらにArrayという種類があります。

それぞれ要素があるかどうかを調べる方法が違うのでまとめておきます。

配列Array・NSArray・NSMutableArrayに要素があるかどうかを調べる方法

Array

index関数を使って要素のある添字(要素番号)を取得して調べます。
nilの場合「ない」ということになります。

Swift4

let array : [String] = ["a","b","c","d","e","f","g"]
    
override func viewDidLoad() {
    super.viewDidLoad()

    if array.index(of: "c") != nil { // ある
        print("ある")
    }
    else {
        print("ない")
    }

}

NSArray

Array同様、index関数を使用します。
Swift4では要素がない場合「nil」でしたが、Objective-Cでは「-1」になります。

index関数他にcontains関数を使用して調べる方法もあります。
contains関数では要素の有無をBOOLで取得できます。

Swift4

let array : NSArray = NSArray(array: ["a","b","c","d","e","f","g"])
    
override func viewDidLoad() {
    super.viewDidLoad()

    if array.index(of: "c") != nil { // ある
        print("ある")
    }
    else {
        print("ない")
    }
    
    if array.contains("h") { // ない
        print("ある")
    }
    else {
        print("ない")
    }

}

Objective-C

NSArray *array = @[@"a",@"b",@"c",@"d",@"e",@"f",@"g"];
    
if ([array indexOfObject:@"b"] != -1) { // ある
    NSLog(@"ある");
}
else {
    NSLog(@"ない");
}

if ([array containsObject:@"x"]) { // ない
    NSLog(@"ある");
}
else {
    NSLog(@"ない");
}

NSMutableArray

NSArray同様index関数、またはcontains関数で要素の確認ができます。

Swift4

let array : NSMutableArray = NSMutableArray(array: ["a","b","c","d","e","f","g"])
    
override func viewDidLoad() {
    super.viewDidLoad()

    if array.index(of: "c") != nil {
        print("ある")
    }
    else {
        print("ない")
    }
    
    if array.contains("h") {
        print("ある")
    }
    else {
        print("ない")
    }

}

Objective-C

NSMutableArray *array = [[NSMutableArray alloc] initWithArray:@[@"a",@"b",@"c",@"d",@"e",@"f",@"g"]];
    
if ([array indexOfObject:@"b"] != -1) { // ある
    NSLog(@"ある");
}
else {
    NSLog(@"ない");
}

if ([array containsObject:@"x"]) { // ない
    NSLog(@"ある");
}
else {
    NSLog(@"ない");
}