2011-09-13 21 views

Trả lời

43

Bạn có thể làm điều đó như thế nào,

NSArray* yourArray = [NSArray arrayWithObjects: @"Str1", @"Str2", @"Str3", nil]; 
if ([yourArray containsObject: yourStringToFind]) { 
    // do found 
} else { 
    // do not found 
} 
1

Phụ thuộc vào nhu cầu của bạn. Hoặc là indexOfObject nếu bạn quan tâm về sự bình đẳng (rất có thể), hoặc indexOfObjectIdenticalTo nếu bạn quan tâm nó thực sự là cùng một đối tượng (tức là cùng một địa chỉ).

Nguồn:

6

lặp hoặc containsObject là thứ tự n cách để tìm kiếm.

Nếu bạn muốn tra cứu thời gian không đổi, bạn cũng có thể duy trì bảng băm như NSSet hoặc NSHashTable nhưng điều đó làm tăng không gian nhưng tiết kiệm thời gian.

NSArray* strings = [NSArray arrayWithObjects: @"one", @"two", @"three", nil]; 
NSSet *set = [NSSet setWithArray:strings]; 

NSString* stringToFind = @"two"; 
NSLog(@"array contains: %d", (int)[strings containsObject:stringToFind]); 
NSLog(@"set contains: %d", (int)[set containsObject:stringToFind]); 
Các vấn đề liên quan