2011-09-13 15 views

Odpowiedz

43

Można zrobić to tak,

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

W zależności od potrzeb. indexOfObject, jeśli zależy Ci na równości (najprawdopodobniej) lub indexOfObjectIdenticalTo, jeśli zależy Ci na tym, aby był to ten sam obiekt (to jest ten sam adres).

Źródło:

6

Iteracja lub containsObject są kolejność n sposobów, aby znaleźć.

Jeśli chcesz mieć stałe wyszukiwanie czasu, możesz również utrzymywać tabelę skrótów, jak NSSet lub NSHashTable, ale to zwiększa przestrzeń, ale oszczędza czas.

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]); 
Powiązane problemy