【Swift4】配列Array・NSArray・NSMutableArrayに要素があるかどうかを調べる方法【Objective-C】
配列に要素があるかどうかを調べる方法です。
配列には色々な種類があり、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(@"ない");
}