2011-09-01 30 views

cevap

135
if ([mystring isEqualToString:@"Johns"]){ 
    //do some stuff in here 
} 
3

çizgisinde düşünüyorum bazı durumlarda kullanmak isteyebilirsiniz başka yöntemdir:

NSArray * validNames = @[ @"foo" , @"bar" , @"bob" ]; 

if ([validNames indexOfObject:myString].location != NSNotFound) 
{ 
    // The myString is one of the names in the valid names array 
} 

Yoksa isimlerin büyük miktarda varsa dizide bir nesne bir diziden daha hızlı olduğundan ((O(Log N) vs O(N))

bulunduğundan NSSet kullanabilirsiniz. NSSet ve NSArray kullanımı isEqual: hangi NSString örnekleri için isEqualToString: arayacak çünkü
NSSet * validNamesSet = [NSSet setWithArray:validNames]; 

if ([validNamesSet containsObject:myString]) 
{ 
    // This is faster than indexOfObject for large sets 
} 

Bu yöntemler işe.

+0

'isEqualToString' yöntemiyle for döngüsünün aksine 'location' yaklaşımını ne zaman kullanmak istersiniz? – Pavan

+1

@Pavan Bir for döngüsünden (daha az kod satırı) 'indexOfObject' kullanmak biraz daha kolay. Bunun dışında çok az fark var. NSSet yöntemi büyük kümeler için bir dizi olsa da döngüden daha hızlı olabilir, ancak çoğu durumda önemli olmayacaktır. – Robert

İlgili konular