如果要判斷一個陣列中是否已經存在該物件,可以使用 containsObject: 方法,不管你是使用 NSArray 還是 NSMutableArray 都可以找到此方法。
下列程式碼我們將製作一個存放 UIImage 的 NSMutableArray 和一個存放 NSNumber 的 NSArray,並使用 containsObject: 方法來判斷我們所要找的物件是否存在於陣列中,其程式碼如下。
UIImage *image1 = [UIImage imageNamed:@"Fire.png"];
UIImage *image2 = [UIImage imageNamed:@"Ice.png"];
UIImage *image3 = [UIImage imageNamed:@"Wood.png"];
UIImage *image4 = [UIImage imageNamed:@"Ice.png"];
NSMutableArray *mutableArray = [[NSMutableArray alloc] initWithObjects:image1, image2, image3, nil];
if ([mutableArray containsObject:image4]) {
//物件存在於陣列時的處理
}
NSNumber *number_A = [NSNumber numberWithInt:3];
NSNumber *number_B = [NSNumber numberWithInteger:4];
NSNumber *number_C = [NSNumber numberWithFloat:5.0];
NSNumber *number_D = [NSNumber numberWithBool:0];
NSArray *array = [[NSArray alloc] initWithObjects:number_A, number_B, number_C, nil];
if ([array containsObject:number_D]) {
//物件存在於陣列時的處理
}
回顧上述程式碼 containsObject: 會回傳一個布林值(BOOL),代表該物件是否存在於此陣列中,這裡要特別注意,雖然我們使用「物件」來稱呼在陣列中所要尋找的東西,但是就如同 containsObject: 方法它的名稱一樣,它所在呼的是物件的值,而不是物件的名稱,或是它的記憶體位置,所以系統會判斷 image4 是存在於 NSMutableArray 中,而 number_D 不存在於 NSArray 中。
沒有留言:
張貼留言